По состоянию на jQuery 1. 7 , вы должны использовать jQuery.fn.on
:
$(staticAncestors).on(eventName, dynamicChild, function() {});
До этого рекомендуемый подход состоял в том, чтобы использовать live()
:
$(selector).live( eventName, function(){} );
Однако live()
устарела в 1. 7 в пользу on()
, и полностью удален в 1. 9. Подпись live()
:
$(selector).live( eventName, function(){} );
. , , можно заменить на следующую on()
подпись:
$(document).on( eventName, selector, function(){} );
Например, если бы ваша страница динамически создавала элементы с именем класса dosomething
, вы бы привязали событие к родительскому объекту, который уже существует (это здесь проблема, вам нужно что-то, что существует для привязки, не ' Привязка к динамическому контенту), это может быть (и самый простой вариант) document
. Хотя имейте в виду , document
может оказаться не самым эффективным вариантом .
$(document).on('mouseover mouseout', '.dosomething', function(){
// what you want to happen when mouseover and mouseout
// occurs on elements that match '.dosomething'
});
Любой родитель, который существует в то время, когда событие связано, в порядке. Например,
$('.buttons').on('click', 'button', function(){
// do something here
});
будет применяться к