Javascript 未捕获类型错误:无法使用';在';操作员搜索';高度';未定义

Javascript 未捕获类型错误:无法使用';在';操作员搜索';高度';未定义,javascript,jquery,Javascript,Jquery,我有以下代码: $('.p1').click(function(){ var num = 10; var count = 0; var intv = setInterval(anim,800); function anim(){ count++; num--; if(num==0){clearInterv

我有以下代码:

$('.p1').click(function(){
            var num = 10;
            var count = 0;
            var intv = setInterval(anim,800); 
            function anim(){
                count++;
                num--;
                if(num==0){clearInterval(intv);}
                $(this).hide(function(){
                    $(this).appendTo('#box_'+count);
                }).delay(500).fadeIn();

            }
            anim();
        });
我不知道,如果动画放入函数出现错误,请帮助我该
anim()
函数没有
这个
上下文。click事件确实有它,但它不会自动传递给其他函数。您可以使用
.bind()
.call()
进行设置:

.bind()
用于
setInterval
行,因为您希望在设置
this
上下文的同时传递函数(不调用它)
.call()
用于最后一行,因为您希望调用函数并设置
上下文


或者,您可以将
上下文存储为另一个变量,使其可在
anim()函数中访问:

// in the click event
var element = this;
function anim(){
  count++;
  num--;
  if(num==0){clearInterval(intv);}
    $(element).hide(function(){
    $(element).appendTo('#box_'+count);
  }).delay(500).fadeIn();

}
// in the click event
var element = this;
function anim(){
  count++;
  num--;
  if(num==0){clearInterval(intv);}
    $(element).hide(function(){
    $(element).appendTo('#box_'+count);
  }).delay(500).fadeIn();

}