所以我正在执行一个$.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");
});
});
});