Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Ссылка сгенерированная jquery не отзывается на клик (https://javascript.ru/forum/jquery/4721-ssylka-sgenerirovannaya-jquery-ne-otzyvaetsya-na-klik.html)

roma86 16.08.2009 15:04

Ссылка сгенерированная jquery не отзывается на клик
 
Есть функция, которая срабатывает по клику по ссылке.
$("#dell").click(function(){
        $.ajax({
            url: 'del.php',
            type: "POST",
            success: function(){
                $("#blok1").load('get.php');
            },
            cache: false
        });
        return false;
    });


Все работает. Понадобилось ссылку с id="dell" генерировать таким методом:
$("#cd1").html("<a href='#' id='dell'>Задействовать блок</a>");

Все. Тут ступор полный. Ссылку в браузере видно, а на клики она не отвечает. Как буд-то не к ней обращаются вообще. В исходном коде странице она, ясное дело, не отображается. Как на нее подействовать? Или нельзя никак?

Заранее благодарен.

Octane 16.08.2009 15:18

Каждый раз после создания ссылки нужно заново назначать обработчик события

roma86 16.08.2009 15:26

Оу щщет! Octane, биговое спасибо тебе. Точно, заработало.

Photon 21.08.2009 21:55

Есть еще интересная методика назначения обработчиков событий:
$(селектор).live('click', function() {нужные действия});

Срабатывает при любом обновлении дерева DOM, т.е. обработчик назначается даже тем элементам, которые сгенерированы динамически.

Почитать про это можно тут и тут

P.S. Работает, начиная с jQuery 1.3.0

roma86 21.08.2009 23:30

Photon,
спасибо за инфорацию, полезно.

nosorog 10.09.2009 22:43

Уважаемые Господа.
Я вобще новичок в JQuery. Помогите с проблемой - создал выпадающее меню. Все двигается очень даже симпатично, ноо... При клике на пункт меню, как на ссылку, ничего не происходит. Я подозреваю, что что-то не дописал, но, что - хоть убейте.
Буду очень признателен.

Gvozd 10.09.2009 23:27

nosorog,
телепаты в отпуске

nosorog 15.09.2009 11:46

Цитата:

Сообщение от Gvozd
телепаты в отпуске

Извините за некорректно заданный вопрос. В любом случае - спасибо, но я уже разобрался. В синтаксисе была ошибка. Не написал >:

$('.panel ul li:has(ul) > a').click(function() {
        $(this).parent().find('ul').slideToggle();  
        return false;      
    }


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