Как я могу удалить обработчик событий jQuery? - PullRequest
3 голосов
/ 31 декабря 2011

У меня есть это:

function test()
{
    this.method = function ()
                {
                    $("html").mousemove(function(event) {
                        console.log('~> moved');
                    });
                }
    this.method();
}

testInstance = new test();

testInstance = null;  // delete window.testInstace;

Хотя я удалил ссылки на объект, установив для testInstance значение null (я также пытался удалить его как свойство window), обработчик события mousemove продолжает работать и записывать данные на консоль. Если удаление объекта, который установил обработчик события, не удаляет его, что я должен сделать, чтобы удалить обработчик события?

Ответы [ 2 ]

15 голосов
/ 31 декабря 2011

, если вы используете jquery 1.7

$('html').off('mousemove');

иначе

$('html').unbind('mousemove');
3 голосов
/ 31 декабря 2011

Уничтожение объекта не повлияет на добавленный обработчик событий. Чтобы удалить обработчик события, вам необходимо отменить привязку события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...