2

呼び出されたときにサイトのコンテンツの上に表示される About ページの全画面オーバーレイがあります。ユーザーがどこでもクリックしてオーバーレイを閉じることができるようにしたいと思います。ただし、これは about テキスト内のハイパーリンクと競合します。したがって、オーバーレイ内のハイパーリンクをクリックすると、オーバーレイが閉じてからハイパーリンクに移動します。ハイパーリンクをハイパーリンクでないものから分離するにはどうすればよいですか?

これは、問題をデモするための jsfiddle です。http://jsfiddle.net/USzAb/

4

3 に答える 3

1

#ablock 内のすべてのハイパーリンクでクリック イベントの伝播を停止するには、これを追加するだけです

$("#ablock a").click(function(event) { event.stopPropagation(); });
于 2012-04-05T11:11:01.330 に答える
0

次のようなコードを追加する必要があります...

$('#ablock').click(function(event) {
    event.stopPropagation();
});

jsFiddle .

あなたが抱えている問題は、 'sイベントもclickトリガーするまで、イベントが祖先要素を介してバブルアップしていることです。#ablockclick

于 2012-04-05T11:11:02.877 に答える
0

この問題は、ハイパーリンクをクリックするとオーバーレイまでバブルするために発生します。この泡立ちを次のようなもので止める必要があります

$('a', '#ablock').click(function(e){e.stopPropagation()})

これにより、リンクのクリックが引き続き機能し、オーバーレイ クリック ハンドラによって処理されるイベントが停止します。

jsfiddle のデモに追加して、これをテストしました

于 2012-04-05T11:15:52.530 に答える