1

在 jQuery 中使用.on()时,您可以像这样附加多个事件处理程序:

$("li").on({
  click: function(){
    $(this).toggleClass("active");
  },
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
});

您还可以使用名称空间处理事件,如下所示:

$( 'li' ).on( 'click.toggles', function() {
  $(this).toggleClass("active");
});
$( 'li' ).off( 'click.toggles' );
//click.toggles is the name space?

你如何结合这两种语法?希望使用.off()轻松关闭一组多个事件处理程序。

还是我完全不了解名称空间,这是错误的。

4

1 回答 1

2

因为on你可以写:

$("li").on({
  "click.namespace": function(){
    $(this).toggleClass("active");
  },
  "mouseenter.namespace": function(){
    $(this).addClass("inside");
  },
  "mouseleave.namespace": function(){
    $(this).removeClass("inside");
  }
});

off可以写

$("li").off(".namespace");
$("li").off("click.namespace mouseenter.namespace mouseleave.namespace");
于 2013-08-14T06:35:59.857 回答