Uncaught TypeError: o objeto não tem o método "stopImmediatePropagation"
Aqui está o código completo que eu recebo do site 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;
}
});
}
Erro está apontando para e.stopImmediatePropagation();
Como posso resolver esse erro? Obrigado!
Respostas:
3 para resposta № 1A primeira variável passada para a função de sucessodeve ser um objeto de dados, não um evento. Parece que você quer pegar o evento click e cancelá-lo desde que você o está manipulando. Então, no topo, use isto:
$(".delete").live("click",function(event)
{
event.stopImmediatePropagation();
...everything else...
});
E remova o original e.stopImmediatePropagation ();
2 para resposta № 2
Você precisa incluir o objeto de evento no seu clickhandler:
$(".delete").live("click",function(e)
-1 para resposta № 3
Isso deve servir...
$(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;
}
});
Note o async: false;
Isso fará com que sua execução de código espere que o Ajax seja concluído e interromperá o evento click. Você não pode parar um evento de um manipulador de sucesso assíncrono.