jQuery在.remove()上遇到问题

jQuery在.remove()上遇到问题,jquery,Jquery,我正在做一个内联评论回复系统 它基本上是工作的,只是我似乎无法将.remove()应用于由回复链接创建的DIV,以“取消”回复 我的jQuery代码是: <script type="text/javascript"> $(function() { <!-- jQuery inline replies --> $("a.reply_link").click(function(){ this_id = t

我正在做一个内联评论回复系统

它基本上是工作的,只是我似乎无法将.remove()应用于由回复链接创建的DIV,以“取消”回复

我的jQuery代码是:

    <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" />&nbsp;&nbsp;&nbsp;<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();
  ...
});