2

我在网页上有一个链接

<li data="url: 'www.mypage.com?index.php?CId=2&MId=14&MTId=1'">mylink

在我的 js 脚本中,我有

$(document).ready(function() {

 $("#tree").dynatree({
 persist: true,

 onPostInit: function(isReloading, isError) {
        this.reactivate();
 },

 onActivate: function(dtnode) {
        var isInitializing = dtnode.tree.isInitializing(); 
        var isReloading = dtnode.tree.isReloading(); 
        var isUserEvent = dtnode.tree.isUserEvent(); 

       if( dtnode.data.url )
          window.open(dtnode.data.url); 

}   

    });

});

我应该怎么做而不是window.open让网址在同一个窗口中重新加载,而不是打开一个新窗口?网页中没有我可以使用 iFrame 方式的名称。

4

4 回答 4

3

我会建议

onActivate: function(node) { 
    if( node.data.href ){
        // use href to change the current frame:
        window.location.href = node.data.href; 
        // or load data into a div tag:
//      $("#div").load(node.data.href);
        // or open href in another target frame:
//      window.open(node.data.href, node.data.target);
    }
}

另请参见此处以获取另一个示例:如何使 dynaTree jQuery 插件中的超链接可点击?

于 2011-09-10T09:04:21.227 回答
2

dynatree 现在允许您在 li 元素中放置锚标记。所以你可以简单地做:

<li><a href="www.mypage.com\index.php?CId=2&MId=14&MTId=1" target="_top">mylink</a>

看看这里的导航示例

于 2011-11-14T09:17:15.180 回答
0

您是否尝试过此解决方案:

$(document).ready(function() {

   $("#tree").dynatree({ persist: true,

      onPostInit: function(isReloading, isError) { this.reactivate(); },

      onActivate: function(dtnode) { 
         var isInitializing = dtnode.tree.isInitializing(); 
         var isReloading = dtnode.tree.isReloading(); 
         var isUserEvent = dtnode.tree.isUserEvent();

         if( dtnode.data.url )
            window.location.href = dtnode.data.url; 
      }
   });
});
于 2010-08-02T10:08:57.037 回答
0

这是记录在案的方式:

onActivate: function(node) {
   if( node.data.href ) {
      window.open(node.data.href, node.data.target);
      return false;
   }
},
于 2013-06-18T14:46:32.367 回答