Php ajax调用仅在单击tablesorter时起作用
我真的不知道该怎么解释。我有一个表,我正在使用tablesorter对列进行排序 在每一行的末尾,我都有一个按钮,它有一个jquery侦听器来触发ajax调用。出于调试目的,所调用的脚本所做的一切就是print\u r($\u POST)。这个ajax调用只有在我单击一列对表进行排序后才起作用。如果我不这样做,我就不会得到ajax调用的响应。在firebug中,如果我不点击列进行排序,我会得到一个红色的http:Post响应,如果我点击一个表列,我会得到预期的响应Php ajax调用仅在单击tablesorter时起作用,php,jquery,ajax,Php,Jquery,Ajax,我真的不知道该怎么解释。我有一个表,我正在使用tablesorter对列进行排序 在每一行的末尾,我都有一个按钮,它有一个jquery侦听器来触发ajax调用。出于调试目的,所调用的脚本所做的一切就是print\u r($\u POST)。这个ajax调用只有在我单击一列对表进行排序后才起作用。如果我不这样做,我就不会得到ajax调用的响应。在firebug中,如果我不点击列进行排序,我会得到一个红色的http:Post响应,如果我点击一个表列,我会得到预期的响应 //tablesorter
//tablesorter call
$('#pendingItems').tablesorter();
//dialog setup
$('#removeItem').dialog(
{
autoOpen:false,
width: 500,
modal: true,
resizable: false,
closeOnEscape: true,
buttons:
{
"Ok": function()
{
//window.location.replace('items.php');
}
}
});
//listener for button click
$('.removeItem').click (function()
{
var attrId = $(this).attr('id');
var gid = attrId.split('_');
var itemId = gid[1];
$.ajax({
type: "POST",
url: "removeItems.php",
data: "itemId="+itemId,
success: function(result)
{
alert('hi');
$('#removeItem').html(result);
$('#removeItem').dialog('open');
}
});
});
在桌子上
<input type='image' src='images/trashcan2.png' id='remove_" . $r['id'] . "' name='remove_" . $r['id'] . "' class='removeItem'>
其中,$r['id']是一个数字
在firebug中:
看看网络标签。尝试失败后,文章将转到items.php(原始页面)。如果单击table列,然后单击按钮,post将转到removietems.php(正确的页面)…可能(可能…tablesorter
正在修改DOM,导致绑定消失
要想知道这是否是问题所在并解决它,只需改变:
$('.removeItem').click (function()
致:
请注意,
on()
需要jQuery 1.7+同样在POSt类型中,数据应该是这样的:data:{temId:itemId},,所以我发现输入类型image提交表单。添加返回假;单击事件修复了该问题。检查按钮(removeGame)中的类名,它与onclick事件处理程序(removeItem)的选择器不同。如果只是在代码中发布错误,请在没有附加tablesorter插件的情况下尝试ajax代码。如果它在没有它的情况下工作,那么您可能希望更改附加事件处理程序的方式,以避免与tablesorter代码冲突(jquery中的调用以及到实际文件的链接。并且从firebug得到红色响应…是的,removeGame是打字错误,它实际上是removeItem.no dice@jeroen。我一起删除了tablesorter(jquery中的调用以及到实际文件的链接。并且从firebug获得红色响应…@bart2puck检查控制台、网络选项卡等中到底发生了什么。只是颜色<代码>红色代码>没有多大帮助:-)还要检查html是否符合您的预期。在net部分:我看到POST.php在net选项卡中没有错误。在console选项卡中,我看到POST:no errors in the nettab@bart2puck您有在线示例吗?@bart2pucktype=“image”
提交表单,因此您至少需要在('click',function(event){event.preventDefault();以确保表单不会以正常方式提交。
$('.removeItem').on('click', function()