1

我正在创建一个非常简单的游戏 - 它在用户单击该区域时开始,并且应该在 10 秒后停止,所以我有这样的代码:

$('#area').click(function(){
  var timer = setInterval(function(){ 
     clearInterval(timer);
     $(this).off('click'); //this is taking window as "this" 
  }, 1000);
});

但正如您从代码中看到的那样,$(this).off('click');并没有做我想要的 - 如何在这个范围内到达$('#area')'s this?(点击事件函数的时间间隔函数)。我希望你正确理解我的问题,如果不请评论:)

4

1 回答 1

1

您需要将 的值存储this在单击处理程序(将是单击的元素)中,以便您可以在计时器函数中使用它。尝试这个:

$('#area').click(function(){
    var $area = $(this);
    var timer = setInterval(function(){ 
        clearInterval(timer);
        $area.off('click');
    }, 1000);
});
于 2013-08-09T10:33:34.693 回答