Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Остановка выполнения обработчика (https://javascript.ru/forum/jquery/67985-ostanovka-vypolneniya-obrabotchika.html)

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, то снова добавляется, а надо наоборот, когда его нет.


Часовой пояс GMT +3, время: 12:14.