加载调用仅适用于第一个节点,而不适用于叶子?

时间:2015-01-12 21:25:31

标签: javascript jquery jstree

我认为我已经解决了我的问题,但没有。 我使用普通的调用来加载内容,它可以轻松,快速和精细地工作。

    $( document ).ready(function() {
        $('#leftmenu').jstree();
        $('.jstreelink').click(function(){
            alert("Clicked!");
          $('#maincontent').load(this.href)
          return false;
        });
    });

    <div id="leftmenu">
       <ul>
           <li>Admin
               <ul>
                  <li><a class="jstreelink" href="backend/test4.php">task1</a></li>
                  <li><a class="jstreelink" href="backend/test3.php">task2</a></li>
               </ul>
           </li>

           <li>Moderator
               <ul>
                   <li><a class="jstreelink" href="backend/testp.php">task3</a></li>
                   <li><a class="jstreelink" href="backend/test1.php">task4</a></li>
               </ul>
           </li>

           <li><a class="jstreelink" href="backend/test.php">task5</a></li>

       </ul>
       </div>

我添加了一个测试警报,我只在点击task5时才收到警报。 我尝试过不同的组合,但点击一片叶子时没有任何反应。还用Firebug检查。 每次警报时重复点击任务5都会触发,并在maincontent div中加载html。

所以看起来这不是一个正常的jquery问题,但是jsTree的问题(当然还有我自己:))

我正在使用

jQuery v2.1.3 jsTree - v3.0.9

提前感谢任何评论。

2 个答案:

答案 0 :(得分:0)

试试这个

$('#leftmenu').on("select_node.jstree", function(a,b){
    alert(b.node.a_attr.href);
    $('#maincontent').load(b.node.a_attr.href)
      return false;
});

答案 1 :(得分:0)

谢谢maddin,但我已经找到了解决方案:

$( document ).ready(function() {
    $('#jstree').jstree();
    $('#jstree').on('click', '.jstreelink', function() {
     $('#maincontent').load(this.href);
  });
});