这是我想要实现的简化示例: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 添加到处理程序,但在控制台中看不到它们。
谢谢!