-2

未捕获的类型错误:对象没有方法“stopImmediatePropagation”

jQuery错误

这是我从 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();

如何解决此错误?谢谢!

4

3 回答 3

3

传递给成功函数的第一个变量应该是数据对象,而不是事件。似乎您想要获取点击事件并取消它,因为您正在处理它。所以在顶部,使用这个:

$(".delete").live('click',function(event)
{
    event.stopImmediatePropagation();
    ...everything else...
});

并删除原来的 e.stopImmediatePropagation();

于 2013-01-25T03:22:58.140 回答
2

您需要在 clickhandler 中包含事件对象:

 $(".delete").live('click',function(e)
于 2013-01-25T03:20:13.487 回答
-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 完成并停止单击事件。您不能从异步成功处理程序中停止事件。

于 2013-01-25T03:24:05.343 回答