我想要獲取按鈕的單擊事件數組訂閱,然後通過從屬性拉位置重定向。我有麻煩得到這個工作,現在它已經歸結爲以下...onclick事件不會觸發或沒有訂閱與循環中的按鈕
function pushButton() {
window.alert('Hello World');
}
var listButtons = document.getElementsByClassName('btn');
for (var i = 0; i < listButtons.length; i++) {
listButtons[i].addEventListener('click', pushButton, false);
}
這是在腳本標記在頁面底部(按鈕已被宣佈之後)。
我也試過......
...
for (var i = 0; i < listButtons.length; i++)
listButtons[i].onclick = function(i) {
return function() {
alert('Hello World');
}
}(i);
}
和...
...
(function(i) {
listButtons[i].onclick = (function() {
window.alert('Hello World');
})})(i);
基礎上,我看到周圍的其他例子。問題是,單擊按鈕時沒有任何反應。我在Chrome中使用開發人員視圖來查找錯誤,但沒有顯示任何錯誤。我也試過在Firefox和IE中無濟於事。
我確實有幾個例子會使用onclick來觸發所有事件,並且我知道這是由於訂閱時觸發了事件。但即使在那之後,按鈕也不會做任何事情。我正在使用onclick,但現在我已經轉移到addEventListener,它沒有不同的結果。
我試圖避免jQuery,只使用香草的JavaScript。
您是否試圖在初始化後檢查'listButtons'的值,並驗證它包含您期望的元素? – Gian
@Gian - 是的,我有回來所有的項目。計數也是正確的。目前大約有18個按鈕。 – SLaG
您最小的示例對我來說按預期工作。接下來我會嘗試驗證偵聽器是否實際上已連接到按鈕(使用Chrome開發人員窗格)。 – Gian