2013-09-12 1 views
0

В моей таблице будет несколько элементов TD, которым присваивается класс .foo во время работы пользователя с данные. В таблице может быть несколько сотен ячеек, и только десяток из них могут получить класс .foo. Я хочу прослушивать hover по этим конкретным элементам TD. Похоже, что метод delegate() в jQuery прослушивает javascript событий, тогда как hover - это событие jQuery, так ли это? Как создать делегата для прослушивания hover на TD.foo элементах, которые будут присвоены классу .foo в будущем ?как подключить обработчик hover к элементам TD, фильтруя селектор классов, который может быть применен в будущем

+0

возможно дубликат [Добавление слушателей событий в текущие и будущие элементы с конкретным классом] (http://stackoverflow.com/questions/8459204/adding-event-listeners-to-current- and-future-elements-with-a-specific-class) – undefined

ответ

4

delegate не рекомендуется для использования в новой JQuery, вы должны использовать on

По JQuery 1.7, .delegate() была заменена .on() метод.

$('#table').on('mouseenter mouseleave', 'td.foo', function(e) { 
    if(e.type === 'mouseenter') { 
     //hover in 
    } else { 
     //hover out 
    } 
}); 
+0

Да ладно, это даже не устарело :). – undefined

+0

Мой плохой, он не устарел, но не рекомендуется. – OneOfOne

0
$("#tblId").on("hover", ".foo", function() { 
    // Code here 
}); 
+2

'on (« hover »' был устарел в 1.8 и удален в 1.9, поэтому вы должны либо использовать 'on (« mouseenter mouseleave »' (например, @OneOfOne), или '.hover()' :) – Archer

+0

Gah, действительно? Полезно знать! –

+1

Я начал изучать jQuery 2 года назад и недавно обновился с 1.7 до 1.9. ВСЕ сломалось! lol – Archer