2010-12-15 13 views
1

thisthisのような質問があります。私はボタンクリックで他のコンテンツの上に表示されるメニューを持っています。ユーザーがメニューの外のどこかをクリックすると、メニューを閉じることができます。メニューがアップしている間、クリック可能な他の「もの」がたくさんあります。私はメニューを閉じるためにクリックをしたいと思っています。実際には、メニューをモーダルにして、何が背後にあるのかを見ることができます。また、クリックしたものをアクティブにすることなく、外部のクリックが閉じられます。'外部'のイベントをキャプチャするための '基盤' div

私は、メニューコンテナdivのすぐ下にzオーダーで絶対配置のdivを作成しました。 '基礎となる' divには、メニューを閉じるためのクリックイベントがあります。下にあるdivに背景色があるので、それを見ることができます。すべてがうまくいきます。しかし、私はこの基になるdivを透明にしたい。背景色を削除すると、クリックイベントが発生しなくなりました。

リンクされた質問への回答は、メニューを閉じるために本文またはドキュメント自体にクリックイベントを追加することを提案しましたが、メニューは常に上がらないため、実際にはしたくありません。また、一度停止すると、クリックをキャプチャする必要はありません。

透明なものにするために、「click」イベントをキャプチャするには、「基礎となる」divに何をする必要がありますか?

EDIT:

  1. スタイル背景色を持っている基礎となるDIV:動作するようですが、少し理にかなって何がこれです。
  2. はjQueryのでは、div要素は透明であり、イベントをキャプチャ今

0に不透明度を設定します。 ???

+0

これはすべてのブラウザで問題になるのですか? http://coilmedia.com/post/2010/can-not-click-or-hover-transparent-links-elements-in-internet-explorer/ – dstarh

+0

IE7,8、FF3これまでのところ... – n8wrl

答えて

1

透明な背景は、バックグラウンド要素をクリックすると、背景をクリックしたまま不透明度0に変更することで背景要素をクリックできます。 1x1の透明な.gifまたは.pngを追加して背景にタイル張りすることと同じです - 何かをクリックできるようにします

コメントからのリンクを含むように編集されました - それは私の問題を正確に表しています:link

ありがとうございます!

+0

確かにセックス行動であること - それを確認していただきありがとうございます! – n8wrl

+0

透明にするための背景がより明瞭になるようにするには、 – dstarh

+0

の背景を見ることができます。私がしなかった飛躍は、それがイベントに「透明」であることも意味しました。 ;) – n8wrl

0

私は同様の問題がありました。私がしたことは、needsClickInfoという配列を作成し、ボタンクリックが画面に登録されるたびにneedsClickInfoに格納されているオブジェクト/関数を呼び出すことでした。もちろん、onMouseEnter()needsClickInfoと扱っているオブジェクト/要素(この場合はメニューバー)のonMouseLeave()の機能を更新する必要があります。

関連する問題