2012-04-03 2 views
1

私は、さまざまなユーザーインタラクションで表示されるドキュメント内に多くのレイヤーを持っています。ここで、ユーザーがドキュメント内の他の場所をクリックした場合、これらのレイヤーを非表示にしたいと考えています。これらのレイヤーには異なるIDがあります。クリックオブザーバーでレイヤーを隠す

このような層すべてに対して単一のオブザーバーのみを登録する一般的な方法はありますか?

答えて

0

は、あなただけの、document.bodyノードにclickイベントリスナーを追加し、それはあなたがどこでもイベントのstopPropagationをしない場合、これはバブリング段階で正常に動作する必要があります内部またはあなたの層の外だかどうかを確認するためにevent.targetプロパティを検査することができますキャプチャフェーズで最後の引数としてtrueaddEventListenerに入力してキャプチャすることができます。このクロスブラウザとの互換性は、読者の練習として残しています。

+0

しかし、レイヤーが表示されているかどうかを確認する方法はありますか? – user160820

+0

'el.style.display =" none "'でそれらを隠しているのであれば、 'var hidden =(el.style.display ==" none ");'と比較することができます。コードなしでは、私はそれ以上のことを本当に助けることができません - それを行う方法は非常に多様です... – Benjie

関連する問題