ajax调用仅在单击tablesorter时有效

时间:2014-01-21 20:31:56

标签: php jquery ajax

我真的不知道如何解释这个。我有一个表,我正在使用tablesorter来使列可以排序。

在每行的末尾,我有一个按钮,它有一个jquery监听器来触发一个ajax调用。出于调试目的,所有调用脚本的都是print_r($ _ 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']是一个数字。

在萤火虫中

查看网络标签。在尝试失败时,帖子转到items.php(原始页面)。如果我点击表格列,然后点击按钮,帖子会转到removeItems.php(正确的页面)......

3 个答案:

答案 0 :(得分:0)

也许(可能......)tablesorter正在修改DOM,导致绑定消失。

要查看是否存在问题 - 并解决问题 - 只需更改:

$('.removeItem').click (function()

为:

$('.removeItem').on('click', function()

请注意on()需要jQuery 1.7 +

答案 1 :(得分:0)

同样在POSt类型中,数据应该是:data:{temId:itemId},

答案 2 :(得分:0)

所以我发现输入类型图像提交表单。添加返回false;点击事件修复了问题。