jQuery's delegate
и on
оба хороши для этого.Обратите внимание, что если вы используете более старые версии jQuery, вы можете использовать delegate
, но если вы используете последнюю версию (1.7+), вам нужно использовать on
.
С ними вы должны вызвать метод, используя уже загруженный элемент, и использовать параметр, чтобы указать элемент, который вызывает событие.Чтобы сделать его максимально эффективным, этот элемент должен быть ближайшим родителем для динамически создаваемого элемента.
Например, если щелкнуть тег привязки, вы помещаете div с идентификатором 'target' в контейнер, которыйбыл загружен до вызова on
с идентификатором 'container', ваш вызов on
должен быть.
$('#container').on('click', '#target', function(){ $(this).pluginCall(); });
Вы не можете просто позвонить on
на #target div, потому чтоэтот элемент еще не был загружен.
Другое решение - поместить встроенную функцию $(document).ready()
в динамически создаваемый контент, который вызывает ваш плагин.В этом случае вам не понадобится on
или delegate
, но это будет работать только для загруженных в данный момент элементов.В первом примере любой экземпляр #target, который создается из любого вызова ajax, будет обработчиком click
.