如何使用on()为多事件声明添加命名空间以便稍后使用off()取消绑定它们?

时间:2013-02-13 09:51:48

标签: jquery events

根据JQuery documentation,名称空间可以声明为与onoff一起使用:

var validate = function () {
  // code to validate form entries
};

// delegate events under the ".validator" namespace
$("form").on("click.validator", "button", validate);

$("form").on("keypress.validator", "input[type='text']", validate);

// remove event handlers in the ".validator" namespace

$("form").off(".validator");

但是如何为多事件声明声明一个名称空间,以便以后使用off()取消绑定它们?

$('#frame-right').on('mousewheel DOMMouseScroll MozMousePixelScroll',function(event){
    event.preventDefault();
    return false;
});

$('#frame-right').off(???)

1 个答案:

答案 0 :(得分:2)

您必须将名称空间添加到每个单独的事件名称:

$("#frame-right").on(
    "mousewheel.ns DOMMouseScroll.ns MozMousePixelScroll.ns",
    function(event) {
        event.preventDefault();
        return false;
    }
);

然后你可以发出:

$("#frame-right").off(".ns");