0

わかりましたので、これは非常に単純です。ライブ クリックとクリックを配置すると、マコーディオンが両方で同じ動作に従うことができます。議論されている行は " $(".maccordion h3 input").live('click', function () { ".

私が欲しいのは、ボタンをクリックする基本的なマッコーディオンは、ヘッダーの他の場所をクリックしても何もせず、通常のアニメーションに従います。

編集:追加するだけで、 e.stopImmediatePropagation(); を追加しようとしました。および e.stopPropagation(); ニーターは何でもします。また、挿入されるコードはその場で作成され、ajax を介して取り込まれるため、ライブを使用する必要があります。

<div class="maccordion">
<h3><input type='button' value='cick'></h3>
<ul>
    <li><a href="/custom.html">Custom</a>
</ul>
<h3><a href="/account">Account</a></h3>
<ul>
    <li><a href="/account/avatar.html">Avatar</a>
</ul>

$(function () {

    //Turn the div into an accordion
    $(".maccordion").maccordion({
        header: 'h3'
    });

    //capture the click on the a tag
    $(".maccordion h3 input").live('click', function () {
        return false;
    });
});

4

1 に答える 1

0

デモ

.live().on( ) に変更

$(function () {

    //Turn the div into an accordion
    $(".maccordion").accordion({
        header: 'h3'
    });

    //capture the click on the a tag
    $(".maccordion h3 input").on('click', function () {
        return false;
    });
});

jQuery 1.7 の時点で、この.live()メソッドは非推奨です。.on()イベント ハンドラーをアタッチするために使用します。の古いバージョンのユーザーは、よりも優先してjQuery使用する必要があります。.delegate().live()

このメソッドは、デリゲートされたイベント ハンドラーをページのドキュメント要素にアタッチする手段を提供します。これにより、コンテンツがページに動的に追加されるときのイベント ハンドラーの使用が簡素化されます。詳細については、メソッド内の直接イベントと委任イベントの説明を参照して.on()ください。

後継者に関してメソッドを書き直すの.live()は簡単です。これらは、3 つのイベント添付メソッドすべてに対する同等の呼び出しのテンプレートです。

$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+
于 2013-08-26T16:29:47.947 に答える