-2

キャッチされていない TypeError: オブジェクトにメソッド 'stopImmediatePropagation' がありません

jqueryエラー

これは、9lessons Web サイトから取得した完全なコードです。

$(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

クリックハンドラにイベント オブジェクトを含める必要があります。

 $(".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 に答える