无法使用Javascript oop为按钮附加点击事件

时间:2014-06-17 12:03:14

标签: javascript ajax

我正在努力将点击事件附加到具有课程" nextPage"的按钮上,但它无法正常工作。让我告诉你代码。

function myContent() {

}

myContent.prototype.clickNext = function() {
alert("clicked");    
};


var objMyContent = new myContent();

var el = document.getElementsByClassName('nextPage');
el.onclick=objMyContent.clickNext();

请看一下。请告诉我错误的地方。

2 个答案:

答案 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;