2014-09-04 48 views
1

我尝试使用fancytree。一切正常显示,但我不能有节点的文字链接...为什么?以及如何解决这个问题?如何在FancyTree中建立链接

我试图把HTML链接是这样的:

<div id="tree">  
    <ul> 
     <li><a href="..."> My Link to view 1 </a></li> 
     <li><a href="..."> My Link to view 2 </a> 
      <ul> 
       <li><a href="..." > My link to view 2, 1st object </a></li> 
       <li><a href="..." > My link to view 2, 2nd object </a></li> 
       ... 
      </ul> 
     </li> 
     ... 
    <ul> 
</div> 

或者我试着用

<li Onclick="clickEntite(\''.Yii::app()->CreateAbsoluteUrl($axe['id_entite'].'/view',array('id'=>$axe['id_entite'])).'\')" >'.$axe['text'].'</li> 


    <script type="text/javascript"> 
function clickEntite(url){ 
    window.location.href=url;  
}; 
    </script> 

没有任何成功。

看来,FancyTree删除他的节点上的所有链接。

当节点变为活动状态或检查复选框时,是否可以重定向到正确的视图?

在此先感谢。

回答

1

要在节点上有链接,插件中有几个选项。

重点关注,激活或点击时重定向。

这里是我找到的不同选项的代码。 (我用的是激活一个)

 focus: function(event, data) { 
      var node = data.node; 
      // Auto-activate focused node after 1 second 
      if(node.data.href){ 
       node.scheduleAction("activate", 1000); 
      } 
     }, 

     activate: function(event, data){ 
      var node = data.node, 
       orgEvent = data.originalEvent; 

      if(node.data.href){ 
       //window.open(node.data.href, (orgEvent.ctrlKey || orgEvent.metaKey) ? "_blank" /*node.data.target*/ : node.data.target); 
       window.location.href=node.data.href;  
      } 
     }, 

     click: function(event, data){ // allow re-loads 
      var node = data.node, 
       orgEvent = data.originalEvent; 

      if(node.isActive() && node.data.href){ 
       // data.tree.reactivate(); 
       window.open(node.data.href, (orgEvent.ctrlKey || orgEvent.metaKey) ? "_blank" : node.data.target); 
      } 
     } 
+0

看起来是非常简单,只是http://wwwendt.de/tech/fancytree/demo/sample-iframe.html – JasonPlutext 2015-11-06 22:06:47

+0

使用相同的方法为文森特工作就像一个魅力(除了我有Backbone.JS应用程序,所以用Backbone Navigation代替)。谢谢! – 2016-06-20 07:23:08