2015-08-21 60 views
1

我想我的JavaScript做的一個對象:類型錯誤:null不是(評估 '的document.getElementById(X).style')

我有一個包含一個div一個「的onmouseover =」 getPosition(x)'「這是添加,也可以刪除我的JavaScript時,我按下某個按鈕。函數「爲getPosition()」始終運行,同時股利尚未刪除,使得它總是會得到和更新div的位置並顯示它的X和Y位置在文本框的佔位符

$("#canvas").append('<div onmouseover="getPosition(this.id);"style="top:'+initXYpos+'px; left:'+initXYpos+'px;">Button '+index+'</div>'); 

問題:

當我刪除持有格 「爲getPosition(this.id)」,它仍然運行功能,而我T得到一個錯誤: 「類型錯誤:null不是(評估 '的document.getElementById(X).style')對象」

我只是想讓它停止運行,當我刪除DIV。

這是爲getPosition(x)的函數:

function getPosition(x){ 
    $('#canvas_container').mouseover(function(){ 
    timer = setInterval(function() { 
     var xPos = document.getElementById(x).style.left; 
     var yPos = document.getElementById(x).style.top; 
     document.getElementById(x+'_fieldX').placeholder = xPos; 
     document.getElementById(x+'_fieldY').placeholder = yPos; 
    }, 10); } 

注:

我很抱歉,如果你認爲我的問題是一個愚蠢的錯誤造成。我對Javascript真的很陌生,希望你能理解並樂於幫助我。

+0

看看'unbind()'http://api.jquery.com/unbind/ – m02ph3u5

+0

爲什麼你有'$('#canvas_container')。mouseover (function(){'在你想要的getPosition函數 –

+0

裏面'clearInterval(timer)',它永遠不會停止運行,直到一個明確的 – Hacketo

回答

0

在你的JavaScript,當您刪除DIV,你還必須使用這行代碼停止計時器:

clearInterval(timer); 

我的建議是取消計時器,因爲你並不真正需要它實現你想要做的事

相關問題