Привязать несколько событий к методу jQuery 'live' - PullRequest
17 голосов
/ 29 октября 2009

Метод jQuery 'live' не может обрабатывать несколько событий. Кто-нибудь знает хороший обходной путь для добавления нескольких событий в функцию, которая опрашивает текущие и будущие элементы? Или я застрял с использованием дублирующих живых методов для каждого необходимого обработчика событий?

Пример - я пытаюсь сделать что-то вроде:

$('.myclass').live('change keypress blur', function(){
  // do stuff
});

Ответы [ 4 ]

19 голосов
/ 26 мая 2010

Начиная с jQuery 1.4.1 .live () может принимать несколько разделенных пробелами событий, аналогично функциональности, предоставленной в .bind () . Например, мы можем «связать в реальном времени» события mouseover и mouseout одновременно, как показано ниже:

$('.hoverme').live('mouseover mouseout', function(event) {
  if (event.type == 'mouseover') {
    // do something on mouseover
  } else {
    // do something on mouseout
  }
});
14 голосов
/ 04 октября 2011

Начиная с jQuery 1.7 , функция "вкл" - это то, что вы ищете:

$("a").on({
    click: function() {
        // do something on click
    },
    mouseenter: function() {
       // do something on mouseenter
    },
    mouseleave: function() {
         // do something on mouseleave
    }
});
7 голосов
/ 07 июня 2012

В jQuery 1.7 есть API, который позволяет вам легко это делать ...

$(".myClass").on({
    click: function(){
         alert("You click on me!");
    },
    mouseenter: function(){
         alert("Do you want click on me?");
    }
});

По моему мнению, этот метод полностью эффективен и собирает все способности, которые вы можете использовать в событии элемента ....

Посмотрите на эту страницу .on() [API jQuery 1.7]

1 голос
/ 01 ноября 2012

Попробуйте следующим образом:

("#button").bind("click keyup", function(){

// your code goes here

}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...