我有一个包含大量DOM元素#item1到#itemXX共享类.itembutton的页面,并且有一个通用的.itembutton点击处理程序可以正常工作。
在这一侧是一个“搜索”栏,它接受查询,查询sql以返回可能的匹配列表,然后将新DOM添加到“搜索结果”侧栏。这很好用,DOM出现了。
但是,我正在尝试将click事件绑定到每个搜索结果,以便它们在页面的其他部分中触发匹配的DOM。这种情况没有发生 - 结果出现了,我的调试器说每个结果都有自己的点击事件,它只是没有做任何事情。我无法分辨点击事件的实际作用。
页面在这里(编辑:删除链接,不再有问题,所以不相关),但需要注意的是,只有第一列项目存在于sql后端
此处的相关代码序列
$("#searchbar").change(function(){
if($(this).val()){ //empty check
$("#searchresults").html(""); //empty result table
var query = this.value;
$.getJSON("search.php", {q:query}).done(function(data){ //THIS IS A 2D JSON ARRAY
if (data.length == 0){
$("#searchresults").html("Nothing found! Try another search.");
} else {
var i = 0;
while (i < data.length){
var newElement = $("<div class=\"searchresultbar\" id=\"result"+i+"\"><img class=\"searchicon\" src="+data[i][11]+"><span class=\"searchname\">"+data[i][1]+"</span></div>");
$("#searchresults").append(newElement);
$("#result"+i).on("click", function(data, i){
return function(data, i){
$("#"+data[i][0]).trigger("click");
};
});
/*newElement.on("click", function(idname){
return function(){
$(idname).trigger("click");
};
});*/
i++;
}
}
});
}
});
编辑:不知道这里出了什么问题,但根据评论,我使用了委托的处理程序,当我在附加的div的标题字段中隐藏适当的dom ID时,它就像魅力一样