2010-03-07 135 views
1

我读到新的委托方法可以将多个事件附加到处理程序,但我在实践中没有看到这一点。有人会为此输入一个代码吗?将多个事件的JQuery委托附加到处理程序

我想:

$("body").delegate("input", "mouseup", "mouseover", function() { 
      $(this).after("<p>Another paragraph!</p>"); 
     }); 

,并附加了一段只在鼠标松开。我很困惑。

回答

2

用空格分隔符像这样的活动:

$("body").delegate("input", "mouseup mouseover", function() { 
    $(this).after("<p>Another paragraph!</p>"); 
}); 

你可能意味着选择<input>元素,我改变了这个上面,纠正我,如果你另有所指。

另外,使用.bind()这样的:

$("body input").bind("mouseup mouseover", function() { 
    $(this).after("<p>Another paragraph!</p>"); 
}); 

我觉得这更容易阅读,但不管你的船浮筒。

+0

(类型|| “”).split不是一个函数 – XGreen 2010-03-07 16:39:06

+0

是(评论核爆):-) – Pointy 2010-03-07 16:39:09

+0

@XGreen - 修正了,忘了你是没有约束力,在这种情况下更简单,我会添加一个例子 – 2010-03-07 16:39:49

0

参考.delegate() | jQuery说,关于第二个参数:

含有一个或多个空间分隔的JavaScript事件类型,如“点击”或“的keydown,”或定制事件名称的字符串。

因此,你的情况:

$("body").delegate("input", "mouseup mouseover", function() { 
      $(this).after("<p>Another paragraph!</p>"); 
     }); 
相关问题