TypeError:null不是对象(评估'document.getElementById(x).style')

时间:2015-08-21 12:32:12

标签: javascript jquery html css typeerror

我想要我的javascript做什么:

我有一个div,其中包含一个“ onmouseover ='getPosition(x)' ”这个已添加,当我按下某个特定内容时,也可能会在我的javascript中删除按钮。函数' getPosition()'总是在div尚未删除时运行,因此它总是获取并更新div的位置并在 textfield占位符

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

问题:

当我删除包含“ getPosition(this.id) ”的div时,它仍会在出错时运行该函数:  “ TypeError: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的新手,我希望你理解并乐意帮助我。

1 个答案:

答案 0 :(得分:0)

在你的javascript中,当你删除div时,你还必须使用这行代码停止计时器:

clearInterval(timer);  

我的建议是删除计时器,因为你真的不需要它来实现你想做的事情