将多个事件的JQuery委托附加到处理程序
问题描述:
我读到新的委托方法可以将多个事件附加到处理程序,但我在实践中没有看到这一点。有人会为此输入一个代码吗?将多个事件的JQuery委托附加到处理程序
我想:
$("body").delegate("input", "mouseup", "mouseover", function() {
$(this).after("<p>Another paragraph!</p>");
});
,并附加了一段只在鼠标松开。我很困惑。
答
用空格分隔符像这样的活动:
$("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>");
});
我觉得这更容易阅读,但不管你的船浮筒。
答
参考.delegate() | jQuery说,关于第二个参数:
含有一个或多个空间分隔的JavaScript事件类型,如“点击”或“的keydown,”或定制事件名称的字符串。
因此,你的情况:
$("body").delegate("input", "mouseup mouseover", function() {
$(this).after("<p>Another paragraph!</p>");
});
(类型|| “”).split不是一个函数 – XGreen 2010-03-07 16:39:06
是(评论核爆):-) – Pointy 2010-03-07 16:39:09
@XGreen - 修正了,忘了你是没有约束力,在这种情况下更简单,我会添加一个例子 – 2010-03-07 16:39:49