2016-04-25 99 views
0

我有以下按鈕:按鈕的onClick作品,但JS事件偵聽器不

<input type="button" class ="anhalteButton" id="StopButton" value="&#9611 &#9611"/> 

,我想執行以下功能(viewsLoop是一個全局變量):

function clearTDLoop(){ 

    clearInterval(viewsLoop); 
} 

如果我通過按鈕的onclick屬性調用該功能。即: onclick="clearTDLoop()"它完美地工作。

但是,我想通過一個JS事件監聽器調用該函數,但這根本不起作用。你們有什麼想法我可能做錯了嗎?我的事件監聽器代碼附加:

var stopButtonEl = document.getElementById("StopButton"); 
stopButtonEl.addEventListener("click",clearTDLoop); 

Sry基因的前混亂,那裏有我的代碼示例說明「StartButton」的按鈕ID,我抄錯ID,問題仍然存在..

+3

不同的ID,停止按鈕和開始按鈕 – Ognj3n

+0

參見修訂小提琴http://jsfiddle.net/xfFMk/ 282/ –

+0

@ seulberg1你能提供一些小提琴嗎? –

回答

0

我樹立了榜樣碼給你,請查看:

var tdLoop; 
 
var counter = 0; 
 

 
var startButton = document.getElementById('startButton'); 
 
startButton.addEventListener('click', startTDLoop, false); 
 

 
var stopButton = document.getElementById('stopButton'); 
 
stopButton.addEventListener('click', clearTDLoop, false); 
 

 
var result = document.getElementById('result'); 
 

 
function startTDLoop() { 
 
    tdLoop = setInterval(updateValue, 1000); 
 
} 
 

 
function updateValue() { 
 
    counter++; 
 
    result.innerHTML = counter; 
 
} 
 

 
function clearTDLoop() { 
 
    counter = 0; 
 
    clearTimeout(tdLoop); 
 
}
#result { 
 
    padding: 15px 0 0; 
 
}
<input type="button" class ="anhalteButton" id="startButton" value="Start"/> 
 
<input type="button" class ="anhalteButton" id="stopButton" value="Stop"/> 
 

 
<div id="result"></div>

+0

我複製了部分解決方案,並以某種方式工作;)我害怕我太糟糕了程序員告訴你爲什麼,但我會盡力弄清楚。 – seulberg1

+0

@ seulberg1我很高興你的問題現在解決了:) –

2

它看起來就像你有錯誤ID爲您事件偵聽器:

var startButtonEl = document.getElementById("StartButton"); 
startButtonEl.addEventListener("click",clearTDLoop); 

應該是:

var stopButtonEl = document.getElementById("StopButton"); 
stopButtonEl.addEventListener("click",clearTDLoop); 
+0

sry,複製了錯誤的代碼行,我打電話給StopButton – seulberg1