質問

私はjQueryのツリービューのプラグインを使用しています。 「サンプル1 - デフォルト」を見ていたプラグイン HTTPのデモページで提供し:// jquery.bassistance.de/treeview/demo/する。私の場合、すべてのフォルダとファイルがリンクされています。私が展開し、「フォルダ2」に例えばクリックした場合には、最初に崩壊して、リンクの場所に従います。私がしたい行動は崩壊したものが最初に拡大すると、それはすでに展開されている場合、それはこのように滞在すること、です。

の動作を切り替えるプラグインコード(jquery.treeview.js)は以下の通りである:

66 this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
67 toggler.apply($(this).next());
68 }).add( $("a", this) ).hoverClass(); 

私はすでに変更しなければならないすべてのリンクを取得する方法を考え出します:

$('a').parent().parent().filter('.collapsable')

これは、現在、折りたたみ可能であるすべてのLi(拡大)の配列であろう。 [李。、li.collapsable

しかし、私はそこから続行する方法がわからない:-(うまくいけば、誰かが...

に沿って私を助けることができます

Iはすでにsucessfullyこのコードで現在選択された(クラス=選択された)リンクのためlinkbehaviorを変更します

    $(".current").click(function(e){
        e.preventDefault();
    });

事前に感謝します!

正しい解決策はありません

他のヒント

多分それは私が本当に何をしたいのか明確ではありませんでした私は私の言語化を改善しようとしますので、次回;-)

自分の質問への答えは、次のとおりです。

$('li').filter('.collapsable').find('a:first:not(.current)').click(function(e){
            e.stopImmediatePropagation();
        });
多分それは類似した何かを探している人を支援します。

よろしく!!

UPDATE(ユーザが後にページをリロードすることなく、ノードを展開場合は、上記ポストさ溶液が仕事をしない)

    $('a').click(function(e){
        if ($(this).is('.current')) {
            e.preventDefault();
        } else if ($(this).parent().parent().is('.collapsable')) {
            e.stopImmediatePropagation();
        };          
    });

この一つは、それがになってそれとして動作します。 : - )

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top