Я нашел много статей по этой теме в stackoverflow, но никто не дал мне решение по моей точной проблеме.Click Event внутри плагина jQuery на другом элементе не работает
У меня есть плагин jQuery, который отлично работает до сих пор. В этом плагине добавляю несколько новых DIVs
. Также я хочу добавить прослушиватель событий нажатия на эти новые DIVs
. Как это:
(function ($) {
$.fn.myFunc = function(options) {
// Options + Defaults
var settings = $.extend({
// Some options in here
}, options);
var controls = "\
<div class='controls'>\
<button class='btn-add-text'>Add Text</button>\
</div>\
";
$('.btn-add-text').click(function() {
alert("Test");
});
$(this).after(controls);
return this;
};
})(jQuery);
Моя первая мысль была, что это невозможно, потому что слушатель событий был вызван перед новым ДИВ на самом деле внутри DOM, поэтому он не может работать. Таким образом, я переместил .click (FUNC ... Блок вне кода плагина и поместить его внутри document.ready функции следующим образом:
$(document).ready(function() {
$('.btn-add-text').click(function() {
alert("Test");
});
});
Это также не будет работать для меня Есть ли решение. для этой проблемы?
Я сделал мелкий править. Ваша проблема была в порядке функций. Сначала вставьте элемент в html, а затем вызовите селектор, который может добавить слушателя ИЛИ сохранить элемент dom/jquery в переменную, а затем добавить к нему прослушиватель, а затем вставить в html. –
Спасибо! Работает отлично! – myxotod