我有一个事件监听器,它监听文件加载(这是“myExtension”并且它正常工作)。我想把另一个监听器放入这个监听器,但它不起作用。这就是听众:
myExtension.$("#quicklink img").addEventListener("click", function(){ alert("It's works!"); }, false, true);
但如果我将该侦听器更改为此侦听器:
document.addEventListener("click", function(){ alert("It's works!"); }, false, true);
它可以正常工作。
$("#quicklink img")
- 它是一个包含图像的数组,页面中有一些(0-20 ea)。
我想使用这个,只有一些页面,所以我需要myExtension,因为我不想在所有网站上工作,其中img是一个带有quicklink id的元素。
为什么它不起作用?有什么问题?
答案 0 :(得分:2)
$(“#quicklink img”) - 这是一个带图像的数组,页面中有一些(0-20 ea)。
数组没有addEventListener
方法。你必须循环它并在每个HTMLElementNode上调用addEventListener
。
答案 1 :(得分:0)
你需要在每个图像上添加监听器
$("#quicklink img").each( function(){
$(this).click(function(){
alert("It's work");
});
});
答案 2 :(得分:0)
我找到了答案
window.addEventListener("load", function() { myExtension.init(); }, false);
var myExtension = {
$: jQuery.noConflict(true),
init: function() {
gBrowser.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
},
onPageLoad: function(aEvent) {
[...]
var wnd = aEvent.target.defaultView;
wnd.document.getElementById('a1').addEventListener("click", function(){ alert("It's works!"); }, false, true);
[...]
}
其中“a1”是一个图像ID