我的页面上有一个部分,其中有几个块。加载此页面时,我创建了一个数组块[],它为每个存储一个块对象,这些包含有关块的更多信息。
function block(info, DOM) {
this.id = info["id"];
this.DOM = DOM;
this.title = info["title"];
this.icon = info["icon"];
this.author = info["author"];
}
DOM字段保存与对象关联的块。现在,我正在尝试找出在单击块时获取块对象的最佳方法。
$(".block").click(..)
我正在考虑使用上面的^然后使用clicked元素的索引从block []数组中获取块对象,但是我想知道是否有某种方法可以链接它更直接地使用Block中的.DOM字段,就像在块类中具有特定的单击触发器一样。是否有更清洁的方式来做或者我应该只使用索引?提前谢谢!
答案 0 :(得分:0)
是的,这确实是一种做法。
但是,不是为每个块附加事件处理程序,如下所示
$(".block").click(function(e){
// do event handling
});
您可以尝试event delegation,如下所示
您可以使用事件委派
var blocks=[{},{},{}];
$("parent_for_blocks").on('click', '.block', function(e){
// do event handling
var index = $(this).index();
console.log(blocks[index]); // returns clicked block information
});