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

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

本文关键字:适用于 不适用 节点 第一个 调用 加载      更新时间:2023-09-26

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

    $( 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 时才会收到该警报。我尝试了不同的组合,但是当单击叶子时,没有任何反应。还与萤火虫核对。每次发出警报时,重复单击任务 5 都会触发,并在主内容div 中加载 HTML。

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

我正在使用

j查询 v2.1.3js树 - 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;
});

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

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