2

我是 Zend 框架和 dojo 的新手。我在 zend 框架中使用 dojo 创建了动态树结构,但我想通过单击每个文件夹和树结构的元素来通过编写函数来导航到另一个表单。请检查我的代码和帮帮我,我在点击事件链接上经历了一些道场,但无法解决..

    <html>
    <head>
    <title> Tree Structure </title>
    <link rel="stylesheet"    href=/dojo/dijit/themes/ claro/claro.css" /> 
    <script type="text/javascript" src="/ dojo/dojo/dojo.js" 
         djConfig="parseOnLoad:true, isDebug:true"  >
       </script> 

   <script type="text/javascript">
   dojo.require("dojo.parser");
   dojo.require("dijit.layout.ContentPane");
   dojo.require("dijit.layout.BorderContainer");
   dojo.require("dijit.layout.TabContainer")
   dojo.require("dijit.form.Button");
   dojo.require("dojo.data.ItemFileReadStore"); 
   dojo.require("dijit.tree.ForestStoreModel");
   dojo.require("dijit.Tree"); 
   dojo.require("dojo.parser"); 
  function myTree( domLocation ) { 
  var store = new dojo.data.ItemFileReadStore({url:    "http://localhost/CMTaSS_module1.0/public/dojo/cbtree/datastore/Family-1.7.json"}); 

 var treeModel = new dijit.tree.TreeStoreModel({
         store: store,
         query: { name:'John'}
        });

  var tree =  new dijit.Tree( { 
             model: treeModel, 
            id: "mytree",
           openOnClick: true
                   }); 
                    tree.placeAt( domLocation );
                } 
var tree_obj = new dijit.Tree({
    model: treeModel

 },
  "tree_obj");

 dojo.connect(tree_obj, 'onClick', function(item, node, evt){
     console.log("Item", item);
     console.log("Node", node);
     console.log("Event", evt);
     //console.log('node: ' +tree_obj.getLabel(node));
     //console.log('event: ' +tree_obj.getLabel(evt));
     console.log('identifier: ' + tree_obj.getLabel(item))
  });

</script>

</head>
 <body class="claro"><br><br><br>
 <div id="CheckboxTree"> 
  <script type="text/javascript"> 
     myTree("CheckboxTree"); 
   </script> 
 </div> 
</body>
</html> 
4

1 回答 1

0

看起来您的代码示例格式不正确,因为某些逻辑在 myTree 函数之外。我使用 jsbeautifier.org 来确认这一点。

其他注意事项... 您应该等到 dojo 准备好。要么使用dojo.addonload,要么创建一个小部件并在代码的 html 部分中引用该小部件。小部件令人惊叹,是使道场变得伟大的原因,因此掌握它们的工作方式将带来好处。

另请注意,如果以编程方式创建小部件(新 dijit.Tree),则应在其上调用启动。以声明方式创建它(内联 html)时不需要这样做。

我希望这有帮助。

于 2012-08-26T20:21:20.330 回答