如何将同一事件绑定到window
以及一次性绑定另一个元素。我尝试过这个,但它对我不起作用:
$('window, #someId').bind('click', doSomething);
答案 0 :(得分:7)
$('#someId').add(window).bind('click', doSomething);
应该这样做。
答案 1 :(得分:2)
好window
不是元素。您可以将事件绑定到<body>
:
$('body, #someId').bind('click', doSomething);
执行此操作时,您会注意到您的处理程序会从所有位置获得点击。为什么?因为无论如何所有这些点击都会“冒泡”到身体。因此,您必须在处理程序中检查事件的“目标”属性是什么,并且仅在目标是已注册的元素时才响应事件:
$('body, #someId').click(function(ev) {
if (this === ev.target) {
// do stuff
ev.stopPropagation(); // optional
}
else {
// event not relevant
}
});
Here是一个说明性的jsfiddle。
答案 2 :(得分:2)
$(window).add('#someId').bind('click', doSomething);