2009-07-03 17 views
6

JQuery Treeviewプラグインを使用してデータを表示しています。基本的には、子にclickイベントを追加したいと思います。< li> innerhtmlをページの別のdivにコピーする要素。しかし、これらの要素にclickイベントを割り当てることができませんでした。JQuery TreeviewでClickイベントを< li >に割り当てます。

誰かがこの地面を踏みにじり、助けてくれると願っています。

ありがとうございました。 http://docs.jquery.com/Plugins/Treeviewの例からマークアップを使用して

+0

リーフノードのみ(いないルートノード)にクリックイベントを追加します

$('li:not(:has(>ul))', 'ul#menu').live('click', function() { alert($(this).text()); }); 

この: を(」 #nameOfLi ")。click(function(){alert( 'foo');});; – Peter

+1

はい - 私の場合でもクリックを添付していないようです。同じコードでは、ツリービューの外にあるページの任意の要素(明らかに)にclickイベントがアタッチされます。 – WorkingWeb

+0

コードスニペットを投稿できますか? – Peter

答えて

6

$("span.file, span.folder", "#example li") 
    .click(function() { alert($(this).text()); }); 

作品。 LIアイテム自体のクリックを処理すると、ブランチの縮小と拡大がキャプチャされます。

+1

ありがとうございます、あなたのコメントは、問題を引き起こしていたツリービュー(JSON経由で分岐を追加)を構築する方法であることを認識させました。私は、動的に生成されたブランチを追加した直後にクリックイベントを割り当てることで、私の問題を解決することができました。 – WorkingWeb

6

.live構造を使用できます。私にとってそれは動作します:

$('li','ul#menu').live('click', function(){ 
    alert('Click event');  
}); 
0

を同様に試してみてください、それはあなただけでみました

1
<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")); 
} 
関連する問題

 関連する問題