将多个事件的JQuery委托附加到处理程序

时间:2010-03-07 16:36:13

标签: jquery

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

我试过了:

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

并且仅在mouseup上附加段落。我很困惑。

2 个答案:

答案 0 :(得分: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>");
});

我发现这更容易阅读,但无论你的船是什么漂浮。

答案 1 :(得分:0)

参考 .delegate() | jQuery 说明了第二个参数:

包含一个或多个以空格分隔的JavaScript事件类型的字符串,例如“click”或“keydown”或自定义事件名称。

因此,在您的情况下:

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