我查看了SO上的其他解决方案,但似乎没有一个能帮助我。为了让你了解一些背景,昨天我试图通过类选择所有DIV并存储它们的ID。请参阅此链接现在我已经拥有了我想要创建一些新元素并整合这些ID,以便能够单击这些新元素。我去JSFiddle展示一个演示,但疯狂的是,在那里,我的代码可以工作,但在我的应用程序(Chrome扩展)中却不能工作。更疯狂的是,我已经在其他部分实现了jQuery点击事件,而且没有问题,所以我真的很困惑为什么在这种特殊情况下它不起作用。这是在我的应用程序中无法工作的JSFiddle。感谢任何帮助!对于发布这么多(愚蠢的)问题,我很抱歉。
HTML:
<div class="HA" id="k2348382383838382133"></div>
<div class="HA" id="k2344444444444444444"></div>
<div class="HA" id="k234543544545454454"></div>
<div class="HA" id="k2346787878778787878"></div>
JS:
var HAContainer = document.querySelectorAll('.HA');
var HALength = document.querySelectorAll('.HA').length;
var id = [];
var j = 0;
$('.HA').each(function(){
id[j++] = $(this).attr('id');
});
for (var i=0; i<HALength; i++) {
var HABtn, HABtnImg, HAImgContainer;
HABtnImg = document.createElement("img");
HABtnImg.src = ("http://www.freesmileys.org/smileys/smiley-laughing002.gif");
HABtnImg.className = "ha-icon";
HAImgContainer = document.createElement("div");
HAImgContainer.setAttribute("id", 'HA-'+id[i] + '-container');
HAImgContainer.appendChild(HABtnImg);
HABtn = document.createElement("div");
HABtn.className = 'ha-button';
HABtn.setAttribute("id", 'HA-container');
HABtn.appendChild(HAImgContainer);
HAContainer[i].appendChild(HABtn);
HAClick(id[i]);
}
function HAClick(id) {
$('#HA-'+id+'-container').click(function() {
alert("clicked on ID " + id);
});
}
HABtn
进行了如下操作:设置属性id
为'HA-container'
,并将HAImgContainer
添加为子元素。 - Ted