Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает кнопка, созданная программно. (https://javascript.ru/forum/jquery/48131-ne-rabotaet-knopka-sozdannaya-programmno.html)

Аварский 20.06.2014 19:55

Не работает кнопка, созданная программно.
 
Всем привет. Недавно начал изучать javascript. Работаю c API Яндекс Карт. Они пользуются библиотекой jQuery, так что я тоже решил использовать её. И возникла небольшая проблема. Делаю обработчик для одной кнопки, и создаю с помощью него другую.
$('#routeButton').click(function () {
    $('#routes').html('<a href="#" id="showRoute" >Новая кнопка</a>');
});

Но другая кнопка не работает. Не реагирует на обработчик.
$("#showRoute").click(function () {
    alert('Есть реакция!');
});


Помогите разобраться. Эту технологию еще не знаю. Может программно созданный элемент не крепляется к обработчику. Если так, то как можно вывести данные из базы и для каждого каждой стоки создать кнопку?

рони 20.06.2014 22:05

Аварский,
когда создали тогда и клик присвоили кнопке а ненаоборот или делегирование -- body клик присвоили и боди ждёт когда же нужная кнопка сигнал клик подаст.

Аварский 20.06.2014 22:27

Не очень то понял. Объясните пожалуйста на примере...

рони 20.06.2014 23:24

1 вариант
$('#routeButton').click(function () { 


    $('#routes').html('<a href="#" id="showRoute" >Новая кнопка</a>'); 

$("#showRoute").click(function () { 


    alert('Есть реакция!'); 


}); 


});

2 вариант

$("#routes").on("click","#showRoute", function () { 


    alert('Есть реакция!'); 


}); 

$('#routeButton').click(function () { 


    $('#routes').html('<a href="#" id="showRoute" >Новая кнопка</a>'); 


});

Аварский 20.06.2014 23:38

Отлично брат. СПС. Помог. Целый день с этим мучился. СПС что объяснил.


Часовой пояс GMT +3, время: 05:53.