これが私が達成しようとしていることの簡単な例です:http://jsfiddle.net/easLc/
HTML
<div class="bar">
<div class="apple"> apple</div>
<div class="banana"> banana</div>
<div class="citrus"> citrus </div>
</div>
jQuery
function showAlert(event) {
inventory = event.data.inventory;
alert(inventory);
}
fruits = ["apple", "banana", "citrus"];
inventory = [13, 45, 99];
for (i in fruits) {
$(".bar ."+fruits[i]).on("click", {inventory:inventory[i]},showAlert);
}
ハンドラーに渡すインベントリデータは動的であり、例のように静的ではありません。非同期呼び出しからインベントリデータを取得しています。インベントリデータが更新されるたびに、ハンドラーにその情報を再度取得させるのではなく、このデータをハンドラーに渡したいと思います。
私が気付いているのは、いくつかのクリックで、ハンドラー(私は思う)が私のブラウザーをクラッシュさせています。誤って作成するハンドラーが多すぎませんか?作成されたハンドラーを確認するにはどうすればよいですか?または、クリックイベント中に何が起こりますか?console.logをハンドラーに追加しようとしましたが、コンソールに表示されません。
ありがとう!