0

クリックイベントの後に生成された次のjqueryclicknoクラスがあります。クリックイベント後に生成されるポップオーバーのクラスです。

$(".clickno").on('click', function(){$(this).parent().parent().parent().hide()})

clicknoこれをスクリプトに追加すると、DOM がロードされたときにクラスがないため、機能しません。ポップオーバーが読み込まれた後にこの関数を呼び出すにはどうすればよいですか。

4

2 に答える 2

4

イベントが親であることがわかっている場合は、イベントを親に.clickno委任するか、イベントをドキュメントに委任することもできます。

$(document).on('click', ".clickno", function()
    {$(this).parent().parent().parent().hide()
});

委任されたイベント

委任されたイベントには、後でドキュメントに追加される子孫要素からのイベントを処理できるという利点があります。委任されたイベント ハンドラーがアタッチされたときに存在することが保証されている要素を選択することで、委任されたイベントを使用して、イベント ハンドラーを頻繁にアタッチおよび削除する必要がなくなります ( 参照) 。

于 2013-10-05T17:26:51.470 に答える
0

これを動かして

$(".clickno").on('click', function(){$(this).parent().parent().parent().hide()})

ポップオーバーが読み込まれる要素のクリック イベント コード内。

例えば:

$(".button_that_loads_popover").on('click',function({
 // Pop-over loaded
 $(".clickno").on('click', function(){$(this).parent().parent().parent().hide()});
}));
于 2013-10-05T17:30:11.720 に答える