2

ヘッダーにチェックボックスがある DB からアコーディオンを作成しています。click() 関数を使用してアコーディオンを有効にせずにチェックボックスをクリックする問題を解決するソリューションを見てきましたが、アコーディオンを動的に作成しているため、click() 関数は機能しません。動的に生成されたアコーディオンヘッダーでチェックボックスをクリックする問題を解決する方法として途方に暮れています。

問題は、on('click') が e.stopPropagation を実行する前に、クリック イベントがアコーディオンをアクティブにすることです。

何か案は?

4

1 に答える 1

2

問題は、イベントの伝達を使用してイベント ハンドラーを登録する場合です。通常、イベント ハンドラーはbody、階層内ではるかに上位にある 、またはいくつかの要素にアタッチされます。そのため、アコーディオン ヘッダーに関連付けられたイベントが実行されるまでに、タブが折りたたまれたり展開されたりします。

チェックボックスを動的に作成しているため、解決策は、作成後にチェックボックスへの伝播を防止するクリックイベントハンドラーを追加することです。

元:

var chk = $('<input />', { type: 'checkbox'});
chk.click(function(e){
    e.stopPropagation();
});
chk.appendTo(accordionHeader)
于 2013-07-16T03:14:42.033 に答える