Отследить появление 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, время: 22:20. |