jQuery在.remove()上遇到问题
我正在做一个内联评论回复系统 它基本上是工作的,只是我似乎无法将.remove()应用于由回复链接创建的DIV,以“取消”回复 我的jQuery代码是:jQuery在.remove()上遇到问题,jquery,Jquery,我正在做一个内联评论回复系统 它基本上是工作的,只是我似乎无法将.remove()应用于由回复链接创建的DIV,以“取消”回复 我的jQuery代码是: <script type="text/javascript"> $(function() { <!-- jQuery inline replies --> $("a.reply_link").click(function(){ this_id = t
<script type="text/javascript">
$(function() {
<!-- jQuery inline replies -->
$("a.reply_link").click(function(){
this_id = this.id;
$("#reply_link_div" + this_id).after('<div id="reply_div' + this_id + '" class="reply_div"><form method="post" action="<?php echo SITE_URL . "/comment"; ?>">'+
'<input type="hidden" name="post_id" value="<?php echo $view[0]['id']; ?>" />'+
'<input type="hidden" name="post_slug" value="<?php echo $_REQUEST['post']; ?>" />'+
'<input type="hidden" name="comment_thread" value="' + this_id + '" />'+
'<strong>reply</strong><div style="padding-bottom:4px;">'+
'<textarea name="comment_text" id="comment_text' + this_id + '" rows="1" style="width:100%;" /></textarea>'+
'</div><input type="submit" name="submit" value="submit" /> <a href="#" class="reply_cancel_link" id="' + this_id + '">cancel</a></form></div>')
$("#reply_link_div" + this_id).hide();
return false;
});
<!-- jQuery reply cancel -->
$('a.reply_cancel_link').click(function() {
this_id = this.id;
$('#reply_div' + this_id).remove();
$("#reply_link_div" + this_id).show();
return false;
});
});
</script>
$(函数(){
$(“a.reply_链接”)。单击(函数(){
this_id=this.id;
$(“#reply_link_div”+此id)。在(“jquery中的“.click()”之后是“.bind('click',handler)”的捷径
对于动态创建的元素,您应该使用“.live('click',handler)”。当您的单击事件添加到取消按钮时,这些取消按钮实际上还不存在。您应该使用.live('click',cancelAction)
.live
将在创建符合选择器的任何元素后立即将侦听器附加到该元素。您也有多个具有相同id的a
元素。当我意外地这样做时,我经常会出现奇怪的、未定义的行为。为您的删除链接提供一个唯一的id,如
<a href="#" class="reply_cancel_link" id="remove_' + this_id + '">cancel</a>
最后,如果您这样做,那么您的取消链接将不会将该
放在url栏中
cancelLink.click(function(event) {
event.preventDefault();
...
});
嗯,不一定是动态创建的元素,只是您不能保证进入dom的元素,对吗?@Dave-是的。动态添加到dom的元素。
var cancelLink = $('<a href="#" class="reply_cancel_link" id="remove_' + this_id + '">cancel</a>');
cancelLink.click(function() {...});
cancelLink.click(function(event) {
event.preventDefault();
...
});