2014-06-17 47 views
1

我正在附加一個點擊事件的按鈕上有一個類「nextPage」,但它不工作。讓我給你看看代碼。不能附加點擊事件的按鈕使用Javascript oop

function myContent() { 

} 

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


var objMyContent = new myContent(); 

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

請看看它。請讓我知道我犯的錯誤。

+0

不要回答不修改成你的問題,請。 – Cerbrus

+0

好的。涼。即使將它從clickNext()更改爲clickNext後又出了什麼問題? –

+0

我發現了另一個問題,給我一秒來編輯我的答案... – Cerbrus

回答

2

分配點擊處理程序時,您需要引用該函數,而不是執行它。

相反的:

el.onclick = objMyContent.clickNext(); 

使用此:

el.onclick = objMyContent.clickNext; 

的第一段代碼執行clickNext,並賦予它的返回值el.onclick
第二行代之以將對clickNext函數的引用分配給el.onclick。 (這是你想要的)

另外,getElementsByClassName返回HTMLCollection(這基本上是一個HTML元素的數組)。
你需要點擊處理程序分配給每個發現元素集合中:

for(var i = 0; i < el.length; i++){ 
    el[i].onclick = objMyContent.clickNext; 
} 
+0

改爲它。仍然沒有得到警報 –

+0

@NizamAli:我更新了我的答案。 – Cerbrus

+0

謝謝。我得到了答案。 –

0

遍歷數組和分配onclick事件

var objMyContent = new myContent(); 

var el = document.getElementsByClassName('nextPage'); for(var i=0;i<el.length;i++) el[i].onclick=objMyContent.clickNext; 
+0

謝謝老兄。但是,我可以知道爲什麼我應該重複它?它的目的是什麼? –