未捕获的TypeError:对象没有方法'stopImmediatePropagation'
以下是我从9lessons网站获得的完整代码。
$(document).ready(function()
{
$(".delete").live('click',function()
{
var id = $(this).attr('id');
var b=$(this).parent().parent();
var dataString = 'id='+ id;
if(confirm("Sure you want to delete this update? There is NO undo!"))
{
$.ajax({
type: "POST",
url: "delete_ajax.php",
data: dataString,
cache: false,
success: function(e)
{
b.hide();
e.stopImmediatePropagation();
}
});
return false;
}
});
}
错误指向e.stopImmediatePropagation();
如何解决此错误?谢谢!
答案 0 :(得分:3)
传递给success函数的第一个变量应该是数据对象,而不是事件。看起来你想抓住点击事件并取消它,因为你正在处理它。所以在顶部,使用这个:
$(".delete").live('click',function(event)
{
event.stopImmediatePropagation();
...everything else...
});
删除原始的e.stopImmediatePropagation();
答案 1 :(得分:2)
您需要在Clickhandler中包含事件对象:
$(".delete").live('click',function(e)
答案 2 :(得分:-1)
应该这样做......
$(document).ready(function()
{
$(".delete").live('click',function(evt)
{
var id = $(this).attr('id');
var b=$(this).parent().parent();
var dataString = 'id='+ id;
if(confirm("Sure you want to delete this update? There is NO undo!"))
{
$.ajax({
type: "POST",
url: "delete_ajax.php",
data: dataString,
cache: false,
async: false,
success: function(e)
{
b.hide();
evt.stopImmediatePropagation();
}
});
return false;
}
});
注意async: false;
,这将使您的代码执行等待Ajax完成并将停止click事件。您无法从异步成功处理程序中停止事件。