2014-08-30 2 views
1

У меня есть загрузочный плагин spinedit. Он отлично работает, когда я прикрепить его к любому существующему элементуКак подключить плагин jQuery к динамически сгенерированному элементу

я клал ниже кода в йоте готового

$('.spin').spinedit({ step: 5 }); 

Но это не работает для динамически добавленного ввода. Я могу регистрировать его каждый раз, когда в Dom добавляется новый элемент. Но я ищу что-то вроде события jQuery .on. Поэтому мне просто нужно написать код подключаемого модуля один раз, и он будет работать для всех.

Заранее спасибо.

$(".sortable").sortable({ 
     connectWith: '.sortable', 
     iframeFix: false, 
     items: 'div.widget', 
     opacity: 0.8, 
     helper: 'original', 
     revert: true, 
     forceHelperSize: true, 
     placeholder: 'sortable-box-placeholder round-all', 
     forcePlaceholderSize: true, 
     tolerance: 'pointer' 
    }); 
+5

нет магических решений, применять плагин после установки – charlietfl

+0

А насчет плагинов событий? Нужно ли регистрироваться? –

+0

Что значит «регистрировать события»? – charlietfl

ответ

-1

Делите событие на родителя. Предположим, что у вас есть родительский класс с классом .parent, вы можете делать это почти во всех случаях.

$('.parent').('spinedit', '.spin', { step: 5 }); 

Теперь, даже если вы добавляете более .spin элемент динамически, все будут назначены все события JavaScript.

подробнее о on здесь https://api.jquery.com/on/

+0

Это не гарантирует, что он будет работать, если плагин не запускает пользовательское событие под названием «spinedit». Кроме того, '.on()' прислушивается к пузырьку события, он не проверяет мутации DOM. – Terry

+0

Вот почему большинство случаев, не все. Если вы применяете 'on' на родительском объекте для каждого дочернего объекта, чтобы использовать это событие, он также будет обрабатывать дочернюю мутацию. Вы можете попробовать с основным щелчком мыши внутри кнопок 'div' и динамически добавлять больше' кнопок'. – Bikas

+0

Вы не понимаете, что метод '.on()' не проверяет мутации DOM **. Он просто прослушивает событие, настраиваемое или собственное, пузырящийся от выбранного селектора (если указано) от вашего селектора. Он не динамически связывает новые обработчики событий с новыми добавленными узлами DOM. Ссылаясь на [официальные документы] (https://api.jquery.com/on/): «jQuery создает пузырьки события от целевой цели до элемента, в котором прикреплен обработчик (т. Е. Самого внутреннего для внешнего элемента) и ** запускает обработчик для любых элементов вдоль этого пути, соответствующего селектору. ** « – Terry

Смежные вопросы