Jquery - 事件不适用于新创建的元素
我有一个简单的评论部分,用户可以在其中向其他用户的帖子发表评论 - 它的工作原理与 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>
感谢您的提示
I have a simple comment section where users can post comments to another users post - It works pretty much in the style of facebook wall where a user can write something on the wall and other can comment on it.
So I have this form where the user can enter anything and when he submits - that information is inserted in the database and shown on the same page below the form using Jquery.
Now each of these post have a comment link next to it. So when someone clicks on the comment link - a small textarea box appears where the user can type something and submit.
Everything works great on the previously posted items- except that the comment link on the newly created element does not open up the textbox area.
After searching I came across the Livequery plugin which I implemented - but that doesn't seem to work for me - looks like I'm doing something wrong.
This is the code that I had previously:
$(".comment_button").click(function(){
var element = $(this);
var I = element.attr("id");
//alert("in="+I);;
$("#slidepanel"+I).slideToggle(300);
$(this).toggleClass("active");
return false;
});
I changed this to use 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;
});
This is the link for comment
<a id="<?php echo $data['shopping_id']?>" class="comment_button" href="<?php echo $data['shopping_id']?>">Comment</a>
Thanks for your tips
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要
livequery
,只需要live
。将livequery
替换为live
,它应该可以正常工作。You don't need
livequery
, justlive
. Replacelivequery
withlive
and it should work fine.