点击事件函数区间函数的jQuery off click事件?

时间:2013-08-09 10:28:25

标签: javascript jquery scope

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

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

但正如您从代码$(this).off('click');中看到的那样,我没有做我想做的事情 - 如何在此范围内访问$('#area') this ? (单击事件的函数的间隔函数)。 我希望你能正确理解我的问题,如果不请发表评论:)

1 个答案:

答案 0 :(得分:1)

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

$('#area').click(function(){
    var $area = $(this);
    var timer = setInterval(function(){ 
        clearInterval(timer);
        $area.off('click');
    }, 1000);
});