jQuery单击与javascript对象关联的元素上的触发器

时间:2017-01-29 09:44:48

标签: javascript jquery html

我的页面上有一个部分,其中有几个块。加载此页面时,我创建了一个数组块[],它为每个存储一个块对象,这些包含有关块的更多信息。

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字段,就像在块类中具有特定的单击触发器一样。是否有更清洁的方式来做或者我应该只使用索引?提前谢谢!

1 个答案:

答案 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
});