1
私は、さまざまなユーザーインタラクションで表示されるドキュメント内に多くのレイヤーを持っています。ここで、ユーザーがドキュメント内の他の場所をクリックした場合、これらのレイヤーを非表示にしたいと考えています。これらのレイヤーには異なるIDがあります。クリックオブザーバーでレイヤーを隠す
このような層すべてに対して単一のオブザーバーのみを登録する一般的な方法はありますか?
私は、さまざまなユーザーインタラクションで表示されるドキュメント内に多くのレイヤーを持っています。ここで、ユーザーがドキュメント内の他の場所をクリックした場合、これらのレイヤーを非表示にしたいと考えています。これらのレイヤーには異なるIDがあります。クリックオブザーバーでレイヤーを隠す
このような層すべてに対して単一のオブザーバーのみを登録する一般的な方法はありますか?
は、あなただけの、document.body
ノードにclickイベントリスナーを追加し、それはあなたがどこでもイベントのstopPropagation
をしない場合、これはバブリング段階で正常に動作する必要があります内部またはあなたの層の外だかどうかを確認するためにevent.target
プロパティを検査することができますキャプチャフェーズで最後の引数としてtrue
をaddEventListener
に入力してキャプチャすることができます。このクロスブラウザとの互換性は、読者の練習として残しています。
しかし、レイヤーが表示されているかどうかを確認する方法はありますか? – user160820
'el.style.display =" none "'でそれらを隠しているのであれば、 'var hidden =(el.style.display ==" none ");'と比較することができます。コードなしでは、私はそれ以上のことを本当に助けることができません - それを行う方法は非常に多様です... – Benjie