Ajax函数第一次工作,第二次不工作?

所以…我正要问这个问题 “我的ajax函数(编辑和删除)是如何工作的,我第一次使用它们,但是如果我第二次运行任何一个没有整页刷新(无论哪个function我使用第一个或哪个function我使用第二个),第二次它不起作用?“。

通过“不工作”我的意思是,对于编辑function,它第二次尝试像往常一样加载editUrlForm.php文件,然后只是停止并留下一个空div,或者在删除的情况下,它给出了错误来自我的“else”语句的消息,然后留下一个空div,在页面上重新加载没有被删除。

这个问题突然停止发生,因为没有理由!

问题:为什么? 怎么样? 我不明白……

AJAXfunction:

 $(function() { $("#deleteUrl").click(function() { $('#response').html(''); if ($('input:checkbox[name="ticked[]"]:checked').length !== 0) { var tickedItems = $('input:checkbox[name="ticked[]"]:checked') .map(function() { return $(this).val() }) .get() //alert(tickedItems) .join(","); $.ajax({ type: "GET", url: "deleteUrl.php", data: "id=" + tickedItems, success: function(msg) { $('#response').html(); urlRefresh(); }, error: function () { alert('error'); } }); } else { alert('Please select at least one item to delete!') return false; } }); });   $(function() { $("#editUrl").click(function() { $('#response').html(''); if ($('input:checkbox[name="ticked[]"]:checked').length == 1) { var tickedItems = $('input:checkbox[name="ticked[]"]:checked') .map(function() { return $(this).val() }) .get() .join(","); $.ajax({ type: "GET", url: "editUrlForm.php", data: "id=" + tickedItems, success: function(msg) { $('#response').empty(); $('#content01').html(msg).show(); }, error: function () { alert('error'); } }); } else { alert('Only one item may be edited at a time. Please unselect all but one checkbox or insure you have one check box selected!') return false; } }); });  

ps我明白这可能不是堆栈溢流的正常问题。 但我完全不知道发生了什么事情才能阻止这种错误发生…我还是不明白是什么原因造成了这个错误。 浏览器控制台很干净,没有错误,没有语法错误……如果有人对此问题有任何意见,可能会对此有所了解请告诉我。

编辑:

的index.html

     <!--    Video Link Storage App         $(function() { $("#deleteUrl").click(function() { $('#response').html(''); if ($('input:checkbox[name="ticked[]"]:checked').length !== 0) { var tickedItems = $('input:checkbox[name="ticked[]"]:checked') .map(function() { return $(this).val() }) .get() //alert(tickedItems) .join(","); $.ajax({ type: "GET", url: "deleteUrl.php", data: "id=" + tickedItems, success: function(msg) { $('#response').html(); urlRefresh(); }, error: function () { alert('error'); } }); } else { alert('Please select at least one item to delete!') return false; } }); });   $(function() { $("#editUrl").click(function() { $('#content02').html(''); if ($('input:checkbox[name="ticked[]"]:checked').length == 1) { var tickedItems = $('input:checkbox[name="ticked[]"]:checked') .map(function() { return $(this).val() }) .get() .join(","); $.ajax({ type: "GET", url: "editUrlForm.php", data: "id=" + tickedItems, success: function(msg) { $('#response').empty(); $('#content01').html(msg).show(); }, error: function () { alert('error'); } }); } else { alert('Only one item may be edited at a time. Please unselect all but one checkbox or insure you have one check box selected!') return false; } }); });   setTimeout(function() { $('#response').fadeOut('fast'); }, 10000); // <-- time in milliseconds    

MEDIA URL STORAGE APPLICATION

<!-- END PANEL -->
© Corey Dawber, 2013
document.write('') <!-- --> $(document).foundation();

由于您可能正在删除然后在每次单击时重新附加按钮,因此您还会删除单击处理程序。 您可能想尝试使用委托:

 $("#response").on('click','#deleteUrl', function() {...}); 

 $("#content02").on('click','#editUrl', function() {...}); 

说明:这会将处理程序附加到不会被覆盖的元素( #response#content02 #response ),但只会侦听从按钮#deleteUrl点击(分别是#deleteUrl#editUrl )。

很难说我们是否没有你的页面结构。

如果#response(我猜它是一个div)包含#deleteUrl。 这是正常的。

您需要在身体上注册您的点击事件

 $('body').on('click', 'selector', function (){...} 

这样,即使用新内容替换div的内容,ajax也将始终有效。 检查: jquery click对ajax生成的内容不起作用