我正在向所有与我正在创建的JS模块的一部分匹配特定选择器的链接添加一个click事件。它看起来像这样。
var Lightbox = (function () {
var showLightbox = function () {
// this does stuff
};
var init = function () {
var links = document.querySelectorAll(options.selector);
for(var i = 0; i < links.length; i++) {
links[i].addEventListener('click', function() {
showLightbox();
}, false);
}
};
return {
init: init
};
})();
Lightbox.init();
首先加载页面上与选择器工作匹配的任何链接。还有一个closeLightbox()
方法可以正常工作。但是,当第二次单击链接时没有任何反应。我没有控制台错误 - nuffin。
添加事件监听器时,我有什么问题吗?
编辑:我已更新代码以删除一些冗余方法,并在此处粘贴完整代码:http://pastebin.com/mC8pSAV2
答案 0 :(得分:5)
您正在重新分配整个文档的innerHTML
:
document.body.innerHTML += response;
链接click
上的。这会消除所有现有DOM元素及其事件,并创建新的DOM结构,但不会分配click
。