0
のイベントを「クリック」。今度は、この機能は私のページ上で複数回実行されます。jQueryのオーバーライドは、私がこれを持っている唯一の子オブジェクト
$('.parent').on('click', '.child1', function(event) {
// do whatever
});
$('.parent').on('click', '.child1', function(event) {
// do whatever
});
2回実行すると、イベントは上書きされずに追加されます。だから私は毎回2回、その機能を実行させるでしょう。ではない私の希望の動作(1つだけ実行)、イベントを複製からそれらを停止するために、私は通常どおりになります。この場合
$('.parent').off('click').on('click', '.child1', function(event) {
// do whatever
});
$('.parent').off('click').on('click', '.child2', function(event) {
// do whatever
});
を、第二.offは(「クリック」).child1からクリックを削除し、 2番目の要素は.child2にのみ関連し、.child1には関連しません。つまり、両方のイベントが.parentの別々の子のクリックで動作しても、私が 'off'テクニックを使用するとオーバーライドされます。
私の質問は、1つの特定の子に対してのみイベントをオーバーライドする方法です。同じ宣言を2回実行すると、イベントは重複しません。
PS:子どもが動的に読み込まれるため、$( '。子')のクリック()できません。静的な.parentにイベントを添付する必要があります。
あなたはこれがXYの問題のように思えるイベントハンドラ – Satpal
を__override__することはできません。あなたは解決しようとしている問題を述べる代わりに、欠陥のある解決策を求めています。あなたが達成する必要がある行動は何ですか? –
目的の子供をターゲットにしてクリックする方法はありませんか? '.on(" click ")'を定義することは、悪い設計です。特定の要素に対してこれをしたいと思っているので、クラスや属性を追加して – sTx