2012-04-05 6 views
2

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

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

答えて

1

はちょうどあなたが、このような

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

jsFiddle ...といくつかのコードを追加する必要があります#ablock

$("#ablock a").click(function(event) { event.stopPropagation(); }); 
0

内のすべてのハイパーリンク上でのイベントの伝播をクリックし停止するようにこれを追加します。

clickイベントは、#ablockclickイベントもトリガーするまで、上位の要素を介してイベントがバブルアップしているという問題があります。

0

問題は、ハイパーリンクのクリックがオーバーレイに泡立つために発生します。あなたはまだオーバーレイクリックハンドラーあなたによって処理される機能やイベントを停止するためのリンクをクリックできるようになります

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

このようなもので、このバブリングを停止する必要があります。

私はjsfiddle

+0

であなたのデモにそれを追加することでこれをテストしてきたが、あなたが:-)あなたを掲示している間、私はそれを書いた私の答え –

+0

と同じに見えます –

関連する問題