7

非常に簡単に言えば、この行currentItem.toggleClass('open');は機能していないようです。

より正確には、firebugで結果を調べると、関連する要素でクラス「開いている」が点滅している(表示されてすぐに消える)ことがわかります。つまり、関数が実際に2回トリガーされるようなものです(もちろん、1回クリックするだけです)。

誰かがこれがなぜであるか、そしてそれを防ぐ方法を私に説明できますか?

これが私のjQueryコードです:

$('div.collapse ul.radio_list li input[type=radio]').click(function (event) {

    var currentTree = $(this).parent().parent().parent();
    var currentItem = $(this).parent().parent();
    var currentGroup = currentItem.attr('rel');

    $(this).parents('ul').children('li').removeClass('select');
    if ($(this).is(':checked')) {
        currentItem.addClass('select');
    }

    currentItem.toggleClass('open');

    var currentLevel = 0;
    if (currentItem.is('.level1')) {currentLevel = 1;}
    if (currentItem.is('.level2')) {currentLevel = 2;}
    if (currentItem.is('.level3')) {currentLevel = 3;}
    var nextLevel = currentLevel + 1;

    currentTree.children('li').filter('li[rel ^=' + currentGroup + '].level' + nextLevel).animate({'height': 'show', 'opacity': 'show'}, 250).addClass('currentChild');
});

そして、これが私のHTMLコードの一部であり、読みやすくするために少し簡略化されています(私が知っていることはあまりきれいではありませんが、HTML出力の制御は制限されています):

<div class="col_left collapse">
    <ul class="radio_list" rel="7">
        <li class="onglet level0" rel="group1">
            <span class="onglet level0">
                <input type="radio" />
                    <label>Services Pratiques</label></span>
            <input type="hidden" value="1">
        </li>

前もって感謝します。

4

4 に答える 4

12

問題が解決しました: JS ファイルが実際には HTML ヘッドに 2 回含まれていたため、クリックごとに関数が 2 回トリガーされていました。

于 2010-11-02T11:41:25.063 に答える
1

私は自分のサイトで同様の問題を抱えていました.最初にそれをいじったときに、誤って一番下のトグルクラスフックを複製してしまったことに気付きました. おっとっと!ダブルコールに注意!

于 2011-08-30T21:33:18.410 に答える
1

これを行うと同様の問題がありました:

html:

<a>JS-link</a>

js:

$('a').click(function(event) {
    ... my stuff ...
    # Forgot to do event.preventDefault(); !!
}

クリックが 2 回登録されます。

于 2013-04-17T15:01:33.837 に答える
1

同じ問題があり、関数を誤って 2 回バインドしたことに気付きました。私はもともとコードをある JavaScript ファイルから別のファイルに移動するつもりでしたが、誤ってオリジナルをその場所に残してしまいました。

于 2015-12-17T03:17:44.647 に答える