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')のに到達するにはどうすればよいですか? 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 に答える