我正在努力将点击事件附加到具有课程" nextPage"的按钮上,但它无法正常工作。让我告诉你代码。
function myContent() {
}
myContent.prototype.clickNext = function() {
alert("clicked");
};
var objMyContent = new myContent();
var el = document.getElementsByClassName('nextPage');
el.onclick=objMyContent.clickNext();
请看一下。请告诉我错误的地方。
答案 0 :(得分:2)
在分配点击处理程序时,您需要引用该函数,而不是执行它。
而不是:
el.onclick = objMyContent.clickNext();
使用此:
el.onclick = objMyContent.clickNext;
第一段代码执行clickNext
,并将其返回值分配给el.onclick
。
第二行将clickNext
函数的引用分配给el.onclick
。 (这是你想要的)
此外,getElementsByClassName
会返回HTMLCollection
(基本上是一个HTML元素数组)
您需要将click处理程序分配给该集合中的每个找到的元素:
for(var i = 0; i < el.length; i++){
el[i].onclick = objMyContent.clickNext;
}
答案 1 :(得分:0)
迭代数组并分配onclick事件
var objMyContent = new myContent();
var el = document.getElementsByClassName('nextPage'); for(var i=0;i<el.length;i++) el[i].onclick=objMyContent.clickNext;