取消绑定

    一个已被绑定的事件可以解除绑定,通过 off('click', function) 实现:

    function hello() {

    alert('hello!');

    }



    a.click(hello); // 绑定事件



    // 10秒钟后解除绑定:

    setTimeout(function () {

    a.off('click', hello);

    }, 10000);

    需要特别注意的是,下面这种写法是无效的:

    // 绑定事件:

    a.click(function () {

    alert('hello!');

    });



    // 解除绑定:

    a.off('click', function () {

    alert('hello!');

    });

    这是因为两个匿名函数虽然长得一模一样,但是它们是两个 不同 的函数对象, off('click', function () {…}) 无法移除已绑定的第一个匿名函数。

    为了实现移除效果,可以使用 off('click') 一次性移除已绑定的 click 事件的所有处理函数。

    同理,无参数调用 off() 一次性移除已绑定的所有类型的事件处理函数。