Jquery - событие не работает на вновь созданном элементе - PullRequest
1 голос
/ 27 февраля 2010

У меня есть простая секция комментариев, где пользователи могут публиковать комментарии к постам других пользователей. Это работает в основном в стиле стены на Facebook, где пользователь может что-то написать на стене, а другие могут комментировать.

Итак, у меня есть эта форма, в которой пользователь может ввести что угодно, а когда он отправляет - эта информация вставляется в базу данных и отображается на той же странице под формой с использованием Jquery.

Теперь каждый из этих постов имеет ссылку на комментарий рядом с ним. Поэтому, когда кто-то нажимает на ссылку для комментария, появляется небольшая текстовая область, где пользователь может что-то набрать и отправить.

Все отлично работает на ранее опубликованных элементах, за исключением того, что ссылка на комментарий во вновь созданном элементе не открывает область текстового поля.

После поиска я наткнулся на плагин Livequery, который я реализовал - но, похоже, он мне не подходит - похоже, что я делаю что-то не так.

Это код, который у меня был ранее:


    $(".comment_button").click(function(){                           
                var element = $(this);
                var I = element.attr("id");
                //alert("in="+I);; 
                $("#slidepanel"+I).slideToggle(300);
                $(this).toggleClass("active");
                return false;
            });

Я изменил это, чтобы использовать livequery:


   $('.comment_button').livequery('click',function(event) {                
                var element = $(this);
                var I = element.attr("id");
                //alert("in="+I);; 
                $("#slidepanel"+I).slideToggle(300);
                $(this).toggleClass("active");
                return false;
            });

Это ссылка для комментария

<a id="<?php echo $data['shopping_id']?>" class="comment_button" href="<?php echo $data['shopping_id']?>">Comment</a>

Спасибо за советы

1 Ответ

2 голосов
/ 27 февраля 2010

Вам не нужно livequery, просто live. Замените livequery на live, и оно должно работать нормально.

...