我真的不知道如何解释这个。我有一个表,我正在使用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(正确的页面)......
答案 0 :(得分:0)
也许(可能......)tablesorter
正在修改DOM,导致绑定消失。
要查看是否存在问题 - 并解决问题 - 只需更改:
$('.removeItem').click (function()
为:
$('.removeItem').on('click', function()
请注意on()
需要jQuery 1.7 +
答案 1 :(得分:0)
同样在POSt类型中,数据应该是:data:{temId:itemId},
答案 2 :(得分:0)
所以我发现输入类型图像提交表单。添加返回false;点击事件修复了问题。