如何删除jQuery事件处理程序?

时间:2011-12-30 21:45:24

标签: javascript jquery object

我有这个:

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 个答案:

答案 0 :(得分:14)

如果您使用的是jquery 1.7

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

否则

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

答案 1 :(得分:3)

销毁对象不会对您添加的事件处理程序产生任何影响。要删除事件处理程序,您需要unbind事件。