2013-08-09 4 views
1

Я создаю очень простую игру - она ​​начинается, когда пользователь нажимает на области, и следует прекратить после 10 секунд, так что я есть такой код:jQuery от события клика от функции интервала функции события щелчка?

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

Но как вы можете видеть из кода $(this).off('click'); не делать то, что я хочу - как добраться до $('#area')this в этой области? (функция интервала функции события события). Я надеюсь, что вы поняли мой вопрос правильно, если Dont пожалуйста, комментарий :)

ответ

1

Вы должны сохранить значение this в обработчик щелчка (который будет элемент нажал на), так что вы можете использовать его в функции таймера. Попробуйте следующее:

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

- $ между вар и площадью, важными здесь? –

+0

@ jave.web не требуется синтаксически, это соглашение, показывающее, что переменная используется для хранения объекта jQuery. –

+0

Я так и думал :) Я просто хотел быть уверенным, в любом случае это работает - забавная вещь, которую я менял только «это» - не как объект jQuery :) Спасибо. BTW В последнем коде мне это не понадобилось, но его все еще хорошо знать :) (я буду принимать это как ответ как можно скорее;) –

Смежные вопросы