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

load call only works on first node, not on leaves?

我以为我已经解决了我的问题,但没有。 我使用普通调用来加载内容,它工作起来简单、快速而且很好。

    $( 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>

我添加了一个测试警报,我只有在单击任务 5 时才会收到该警报。 我尝试了不同的组合,但是当点击 leaf 时,没有任何反应。还检查了 Firebug。 重复单击任务 5 每次都会触发警报并在主要内容 div.

中加载 html

所以这似乎不是一个正常的 jquery 问题,而是 jsTree 的问题(当然还有我自己:))

我正在使用

jQuery v2.1.3 jsTree - v3.0.9

提前感谢您的任何评论。

试试这个

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

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

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