Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Привязанное событие срабатывает только 1 раз при создании элемента (https://javascript.ru/forum/events/58526-privyazannoe-sobytie-srabatyvaet-tolko-1-raz-pri-sozdanii-ehlementa.html)

Dion 27.09.2015 18:05

Привязанное событие срабатывает только 1 раз при создании элемента
 
есть функция, которая динамически добавляет на страницу div
и к нему тут же добавляется событие "клик"
function create_div()
{
    $('<div id="new_div"></div>').prependTo('body'); // новый div
    $('#new_div').bind('click', alert('Клик!')); // новое событие
}

функция вызывается из кода тоже по клику
<span onclick="create_div();"></span>

Проблема в том, что когда элемент создаётся, тут же срабатывает и его событие, и только 1 раз. И больше не реагирует.
Когда нажимаю на Спан, то создаётся div и тут же выходит Алерт "Клик!", но созданный див уже ни на что не реагирует.

Я пробовал вместо bind использовать on, live, delegate - результат тот же. Что-то я видимо не так делаю...?

sanmihan 27.09.2015 18:26

Нужно передавать функцию, а не результат функции
function create_div(){
    $('<div id="new_div"></div>').prependTo('body'); // новый div
    $('#new_div').bind('click', function(){alert('Клик!');}); // новое событие
}

рони 27.09.2015 18:29

Dion,
так добаьте в 'click' функцию, а не результат функции

рони 27.09.2015 18:29

Dion,
на всякий случай id уникально!!!

Dion 27.09.2015 20:25

а да... точно, чё-то я затупил :D
Извиняюсь )))
Всем спасибо :victory:


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