アプリケーションには、ドロップダウン、タブ、メニューなど、さまざまな「コントロール要素」があります。同じページに、同じコントロールが多数あります。これらの各コントロールに関連付けられたさまざまなイベントを処理する JavaScript を作成するとき、コードをできるだけ DRY にしようとしています。課題の 1 つは、JQuery コードをモジュール化して、特定のコントロール内で発生したイベントがそのコントロールにのみ影響するようにすることです。
この最初のコードを例にとると、クリックするとドロップダウン メニューが開くだけです。私は、さまざまなイベントによってトリガーされるさまざまな無名関数を大量に作成することに慣れているため、このタイプの JQuery は私にとってまったく新しいものです。
var dropdown = {
init: function() {
$(".dropdown").click(".dropdown", dropdown.openDropdown);
},
openDropdown: function() {
$(this).children(".dropdown-menu").show();
$(this).addClass("open");
}
}
$(document).ready(dropdown.init);
私の質問は、この変数内で、現在実行中のコントロールdropdown
のさまざまな部分を保存/追跡できるようにしたいということです。dropdown
たとえば、次のように書きたいと思うかもしれません:
var menu = $(this).children(".dropdown-menu");
このチャンクのどこかにあるので、さまざまな関数を呼び出すときにこのメニューを参照できます。これを行う方法を構文的に理解することはできません。ヘルプ/ガイダンスは大歓迎です! ありがとう。