2015-08-21 41 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); 

我的建议是取消计时器,因为你并不真正需要它实现你想要做的事

相关问题