Php ajax调用仅在单击tablesorter时起作用

Php ajax调用仅在单击tablesorter时起作用,php,jquery,ajax,Php,Jquery,Ajax,我真的不知道该怎么解释。我有一个表,我正在使用tablesorter对列进行排序 在每一行的末尾,我都有一个按钮,它有一个jquery侦听器来触发ajax调用。出于调试目的,所调用的脚本所做的一切就是print\u r($\u POST)。这个ajax调用只有在我单击一列对表进行排序后才起作用。如果我不这样做,我就不会得到ajax调用的响应。在firebug中,如果我不点击列进行排序,我会得到一个红色的http:Post响应,如果我点击一个表列,我会得到预期的响应 //tablesorter

我真的不知道该怎么解释。我有一个表,我正在使用tablesorter对列进行排序

在每一行的末尾,我都有一个按钮,它有一个jquery侦听器来触发ajax调用。出于调试目的,所调用的脚本所做的一切就是print\u r($\u POST)。这个ajax调用只有在我单击一列对表进行排序后才起作用。如果我不这样做,我就不会得到ajax调用的响应。在firebug中,如果我不点击列进行排序,我会得到一个红色的http:Post响应,如果我点击一个表列,我会得到预期的响应

 //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您有在线示例吗?@bart2puck
type=“image”
提交表单,因此您至少需要在('click',function(event){event.preventDefault();以确保表单不会以正常方式提交。
$('.removeItem').on('click', function()