将单击事件指定给<;李>;在JQuery树视图中

将单击事件指定给<;李>;在JQuery树视图中,jquery,jquery-plugins,treeview,Jquery,Jquery Plugins,Treeview,我正在使用jQueryTreeView插件来显示一些数据。基本上,我想向子元素添加一个click事件,将它们的innerhtml复制到页面上的另一个div中。但是,我无法将单击事件分配给这些元素 希望有人曾经踏上这片土地,并能提供一些帮助 谢谢。使用以下示例中的标记: 工作。处理LI项目本身的点击可以捕获分支收缩和扩展。您可以使用.live构造。对我来说,它是有效的: $('li','ul#menu').live('click', function(){ alert('Click eve

我正在使用jQueryTreeView插件来显示一些数据。基本上,我想向子
  • 元素添加一个click事件,将它们的innerhtml复制到页面上的另一个div中。但是,我无法将单击事件分配给这些
  • 元素

    希望有人曾经踏上这片土地,并能提供一些帮助


    谢谢。

    使用以下示例中的标记:


    工作。处理LI项目本身的点击可以捕获分支收缩和扩展。

    您可以使用.live构造。对我来说,它是有效的:

    $('li','ul#menu').live('click', function(){
        alert('Click event');    
    });
    
    像这样试试

    $('li:not(:has(>ul))', 'ul#menu').live('click', function () {             
                    alert($(this).text());
                });
    
    它将只将单击事件添加到叶节点(而不是根节点)

  • ${node2.name}
  • 函数selectNode(事件、节点列表){ //即 如果($.browser.msie){ window.event.cancelBubble=true; } if(event.stopPropagation){ event.stopPropagation(); } 警报(“selectNode ID:”+$(nodeHtmlEl.attr(“ID”)); }
    您是否尝试过:(“#nameOfLi”)。单击(函数(){alert('foo');});?是的-它似乎连我的点击都没有。同样的代码会将一个点击事件附加到页面上树视图之外的任何位置的元素上(很明显)。你能发布一个代码片段吗?谢谢,你的评论让我意识到是我构建树视图的方式(通过JSON和添加分支)导致了这个问题。在添加动态生成的分支之后,我可以通过分配click事件来解决问题。
    $('li:not(:has(>ul))', 'ul#menu').live('click', function () {             
                    alert($(this).text());
                });
    
    <li onclick="selectNode(event, this);" id="${node2.nodeId}" class="closed">
        <span class="folder"> ${node2.name} </span>
    </li>
    
    
    
    
    function selectNode(event, nodeHtmlEl) {
        // IE
        if ($.browser.msie) {
            window.event.cancelBubble = true; 
        }
        if(event.stopPropagation) { 
            event.stopPropagation();
        }
        alert("selectNode ID: " + $(nodeHtmlEl).attr("id"));
    }