Отследить появление button в DOM
Добрый день!
Помогите новенькой в JS. Есть страница, в div которой я с помощью ajax из php добавляю button. Мне нужно привязать событие к этой новой кнопке, второй день пытаюсь разобраться как это сделать, перерыла кучу сайтов, не получается! Кнопка появляется, но я не могу событие привязать, даже определить ее. Вот это приходит из php в index.html echo '<input type="button" id="button1" value="Кнопка 1"/> Далее к index.html привязываю файл js и из него пытаюсь поймать появление кнопки и привязать событие: $('document').ready(function(){ $('#button1').on("change", function(){ alert ("Нажата кнопка 1"); }); Ничего не происходит((( Помогите пожалуйста, объясните что я не так делаю. И особо не ругайте за код, я только начала изучение JS. |
Либо делегировать обработку события, либо обработчик события определять кнопке после ее помещения на страницу, в ajax.
|
Цитата:
Я пробовала live и on, все равно кнопка не отслеживается |
Цитата:
a) $(element).on(event, function() {}) - установка обработчика элементу существующему на этот момент на странице, тоже самое, что и (element).event(function() {}). б) $(parent).on(event, element, function() {}) - делегирование обработчика ближайшему родителю существующему на странице, то есть для динамически добавляемых элементов на страницу, чем и занимался live. Способом а) можно воспользоваться и после динамического добавления элемента, в случае ajax, это в success: function(data) { $(data).appendTo(объект цели).find(element).event(function() { //код }) } |
laimas,
спасибо, кажется начинаю понимать)) в .find я указываю просто тип элемента? например: .find("button") ? а далее в самой функции уже могу обращаться по id? например: $('#button1').on("change", function(){} |
Цитата:
Цитата:
success: function(data) { $(data) //полученное в JQ объект .appendTo(объект цели) //поместили во что-то на странице .find('[type=button]') //нашли в этом кнопку .click(function() { //установили ей обработчик //код }) } |
laimas, спасибо, очень доходчиво объяснили.
Все работает как надо! |
Часовой пояс GMT +3, время: 14:30. |