jQuery在与javascript对象关联的元素上单击触发器
我的页面上有一个部分,有几个街区。加载此页面时,我创建了一个数组blocks[],它为每个块存储一个block对象,其中包含关于块的更多信息jQuery在与javascript对象关联的元素上单击触发器,javascript,jquery,html,Javascript,Jquery,Html,我的页面上有一个部分,有几个街区。加载此页面时,我创建了一个数组blocks[],它为每个块存储一个block对象,其中包含关于块的更多信息 function block(info, DOM) { this.id = info["id"]; this.DOM = DOM; this.title = info["title"]; this.icon = info["icon"]; this.author = info["author"]; } DOM字段保
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元素的索引从blocks[]数组中获取block对象,但我想知道是否有某种方法可以更直接地将其链接到block中的.DOM字段,比如在block类中有一个特定的click触发器。有没有一种更干净的方法可以做到这一点,或者我应该只使用索引?提前谢谢 是的,这确实是一种方法 但是,不要像下面所示那样为每个块附加事件处理程序
$(".block").click(function(e){
// do event handling
});
您可以尝试如下所示
$(".block").click(function(e){
// do event handling
});
您可以使用事件委派
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
});
是的,这确实是一种做法 但是,不要像下面所示那样为每个块附加事件处理程序
$(".block").click(function(e){
// do event handling
});
您可以尝试如下所示
$(".block").click(function(e){
// do event handling
});
您可以使用事件委派
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
});
如果您想创建(并传递)一个this.$DOM
,它将是jQuery元素对象。如果您想创建(并传递)一个this.$DOM
作为jQuery元素对象,那么您可以执行reference.$DOM.click()
。比你能做的还要多。$DOM.click()