Вход

Просмотр полной версии : Остановка выполнения обработчика


Wreck-It-Ralph
18.03.2017, 20:08
Ситуация такая - при двиге курсора мыши по экрану должен добавиться ОДИН РАЗ текст.


$(window).mousemove(function(){
$('.text').append('текст');
});


Понятно, что при каждом сдвиге он выполнится, однако ни return false, ни перепись .mousemove() на .bind('mousemove') и в конце кода соответственно .bind('mousemove', false) не прекращают процесс повтора.

Тут скорее всего проблема в моей глупости и неправильном использовании данных способов. Поэтому прошу помочь в решении данной проблемы.

Также хочу поставить проверку, чтобы код выполнялся только когда там нет дабавленного текста.

devote
18.03.2017, 20:14
$(window).one('mousemove', function(){
$('.text').append('текст');
});
или $(window).on('mousemove', function(event) {
$('.text').append('текст');
$(this).off(event);
});

Wreck-It-Ralph
18.03.2017, 20:26
Большое спасибо!

Wreck-It-Ralph
18.03.2017, 20:56
А как осуществить проверку наличия данного текста? Если его там нет, то повторить функцию.

Diphenyl Oxalate
18.03.2017, 21:06
Wreck-It-Ralph,

Ну типа такого

$(window).on('mousemove', function(event) {
if (text) {
$('.text').append(text);
$(this).off(event);
}
});

Wreck-It-Ralph
19.03.2017, 16:54
Diphenyl Oxalate, а точно ошибки в коде нет?
Это получается что если text = true, то снова добавляется, а надо наоборот, когда его нет.