私は純粋なネイティブを学習しようとしてJavaScript
いるので、タスクを解決するためにフレームワークを使用することを提案しないでください。私はそれらが素晴らしいことを知っており、純粋なJSを使い終わったら、それらを学ぶことが最初にやることになるでしょう:)
では、質問です。フィドル
ご覧のとおり、2 つのカスタム ドロップダウンがあります。それらのそれぞれは、マウスとキーボードの両方で開いて制御できます。このタスクを解決するために最後に行う必要があるのは、次の機能を実装することです: 1 つのドロップダウンを開くと他のドロップダウンを閉じ、ドロップダウンの外側をクリックすると、開いているドロップダウンをすべて閉じる必要があります (一度に開くことができるのは 1 つだけであると仮定します)。 .
ドキュメントにリスナーを追加しようとしましたonclick
。これにより、ドロップダウンのいずれかが開いていても以前は使用されていなかった場合にドロップダウンが閉じますが、ドキュメントを1回クリックすると、ドロップダウンが表示されなくなります。しかし、それは問題の半分の解決にもなりません。オブジェクトにフラグ bIsOpen を割り当てているため、別のオブジェクトからそれらにアクセスして、トリガーされているかどうかを確認することはできません。
ヒントをください:)