2009-09-01 7 views
1

へ:それは持っているオプションの http://docs.jquery.com/Plugins/Treeview問題私はここにあるツリービューのプラグインを試していますユニークなセット真

一つは、「ユニーク」である - 項目を1つだけ持つことで拡大時間。

これは表示のためにはうまく動作しますが、次にどれが正確に展開されたかを調べるために、TreeViewの "toggle"プロパティ/イベントにフックしようとします。

"unique"がtrueに設定されていると、 "toggle"に渡された関数が各メインリスト要素に対して実行されたように見えます。私はそれが完了した理由を知ります。他の要素がトグルされるようにして、1つだけ展開します。

トグル/展開された「一意の」リスト項目のIDだけを取得する方法については、

if($(this).find("ul:visible").length) 
{ 
    $('#console').append(this.id + ' was toggled'); 
} 

あなたによって:プラグインはいくつかのより多くのイベントを使用することができますが、それは目に見える子供を持っている場合は、簡単にチェックすることによって、クリックされた1伝えることができ

$(document).ready(function() { 
$("#browser").treeview({ 
    collapsed: true, 
    unique: true, 
    toggle: function() 
    { 
      $('#console').append(this.id + ' was toggled'); 
    } 
}); 
}); 

<ul> 
<li id="1">Ottawa 
    <ul> 
     <li>Item 1</li> 
     <li>Item 9</li> 
    </ul> 
</li> 
<li id="2">Montreal 
    <ul> 
     <li>Item 2</li> 
     <li>Item 8</li> 
    </ul> 
</li> 
<li id="3">Quebeque 
    <ul> 
     <li>Item 3</li> 
    </ul> 
</li> 
<li id="4">Calgary 
    <ul> 
     <li>Item 7</li> 
    </ul> 
</li> 
<li id="6">Toronto 
    <ul> 
     <li>Item 10</li> 
    </ul> 
</li> 
</ul> 
<div id="console"></div> 

答えて

1

以下

のコード例HTML構造findをより速くchildrenに変更することができます。これにより、すべてのノードに対して、まだtoggleイベントが実行されますが、正しいノードがチェックされます。
ここでの行動をご覧ください:http://jsbin.com/esoxu

+0

ありがとう、私が探していたもの – andryuha

関連する問題