0

所以我正在执行一个$.post()从访问 SQLite 数据库的 php 脚本返回的一些 html 代码

我需要将单击事件附加到显示页面何时加载新 html 的编辑按钮,因此我在之后附加单击事件,.empty().html()如果用户通过提交数据来编辑记录,它会再次$.post()重新刷新屏幕并显示新数据,所以我再次附加点击事件处理程序,因为如果我不这样做,页面上的编辑按钮将不再工作,因为当第一次附加“.click()”时它们不存在

但是,当我这样做并编辑多条记录时,它会运行多次(我每次执行时都会提醒记录 ID,$.post()并且它执行的次数与我单击的编辑次数相同,我已经看到有关如何.live()导致此问题的帖子和人们建议绑定点击这是我正在做的,所以我看不到发生了什么......这是代码

$(".edit").click(function(e){
    e.preventDefault();
    $realTipID=this.id;
    $.post("ajax.php",{action:'getTip',tipID:$realTipID},function(data){
            $("#editTip_div").css("display","block");
            $("#editText").empty().val(unEscapeSpecialChars(data));//puts the data that is currently in the DB into a textarea to be editted
            $("#edit_tip").click(function(e){
            $.post("ajax.php",{action:'editTip',tipID:$realTipID,editText:escapeSpecialChars($("#editText").val())},function(data){

            if (data=="1")  {//check tosee that the update of the SQL table worked
                e.preventDefault();//tried this because someone suggested it in another StackOverflow post
                $(".edit").unbind('click');//and this
                $realTipID='';
                $("#editText").val('');
                $("#editTip_div").css("display","none");
                $('.result[id|='+$issueID+']').click();//refreshes the <div> with the content, includes this $(".edit").click() event 
            if (data=="0")  {//or failed
                alert("record not written, could be that there are quotes in the text, please remove, quotes, apostraphes, and ticks (`) as they will cause the line to fail"); 
            }

                                                        });
        });
        $("#cancel_edit").click(function()  {
            $("#editText").val('');
            $("#editTip_div").css("display","none");
                                                                });
        });

});
4

1 回答 1

2

听起来您在同一个元素上设置了多个事件处理程序。这有帮助吗?编辑:对不起,那应该是:

$(".edit").unbind().click(function(e){

编辑自:

$("#cancel_edit").unbind().click(function() 
于 2012-10-04T19:17:30.720 回答