jQuery: привязка одного и того же события к окну и другому элементу - PullRequest
0 голосов
/ 17 июля 2011

Как связать одно и то же событие с window, а также с другим элементом за один раз. Я пробовал это, но у меня это не работает:

$('window, #someId').bind('click', doSomething);

Ответы [ 3 ]

7 голосов
/ 17 июля 2011
$('#someId').add(window).bind('click', doSomething);

должен это сделать.

2 голосов
/ 17 июля 2011
$(window).add('#someId').bind('click', doSomething);
2 голосов
/ 17 июля 2011

Ну, window не элемент. Вы можете привязать событие к <body>:

$('body, #someId').bind('click', doSomething);

Когда вы сделаете это, вы заметите, что ваш обработчик получает клики повсюду. Зачем? Потому что все эти щелчки все равно будут «пузыриться» на теле. Таким образом, вам нужно будет проверить в обработчике, какой атрибут «target» относится к событию, и реагировать на событие, только если целью является зарегистрированный элемент:

$('body, #someId').click(function(ev) {
  if (this === ev.target) {
    // do stuff
    ev.stopPropagation(); // optional
  }
  else {
    // event not relevant
  }
});

Здесь является иллюстративным jsfiddle.

...