未捕获的TypeError:对象没有方法'stopImmediatePropagation'

时间:2013-01-25 03:18:36

标签: php javascript ajax jquery

  

未捕获的TypeError:对象没有方法'stopImmediatePropagation'

jquery error

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

如何解决此错误?谢谢!

3 个答案:

答案 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事件。您无法从异步成功处理程序中停止事件。