ページに「Li」タグを動的に追加します。
各「Li」には、次のようなコードがあります。
<li id="file-1000">
<a target="_blank" href="pack.jpg" style="display: block;" class="pirobox_gall first last">
<img alt="" src="pack_thumb.jpg" class="attached">
<i style="display: none;" class="icon-close2" id="delIcon-1000"></i>
</a>
</li>
結果:
イベント:
1)次のように、いくつかのイベントを「a」および「i」タグにバインドします。
$(document)
.on('mouseenter',
'#file-1000',
function () {
$('#delIcon-1000').fadeIn(200);
})
.on('mouseleave',
'#file-1000',
function () {
$('#delIcon-1000').fadeOut(200);
})
.on('click',
'#delIcon-1000',
function () {
alert('Close btn is clicked');
});
2) 一方、「a」タグには、そのクリック イベントに他のイベントが割り当てられています (jQuery 画像スライド プラグイン: piroBox による)。
したがって、画像をクリックすると、画像の素敵なポップアップが(大きな画像として)表示されますが、[削除]ボタンをクリックすると、大きな画像と「閉じるボタンがクリックされました」というメッセージが一緒に表示されます。
「削除」ボタンをクリックしたとき(子をクリックしたとき)に「a」タグクリックイベント(親イベント)を防止したい。
stopPropagation() を使用することが解決策であることは知っていますが、ここでは機能せず、 $(document).on(....) メソッドでどのように使用できるかわかりません。
編集: いくつかの回答を試しましたが、失敗し、結果は次のようになりました:
上の黒いフレームは >>大きな画像を表示するためのポップアップボックスです (このフレームが開かないようにしたいです)