为什么不能达到这个function?

为什么没有达到fadeOut的function? 每次运行该函数时,它都会刷新页面而不是使用AJAX。 我知道这可能是一个微不足道的问题,但我被困住了。 任何帮助都可以让我睡个好觉。 谢谢

 function deleterow(id){ if (confirm('Are you sure want to delete?')) { $.post('delete.php', {id: +id, ajax: 'true' }, function(){ $("#row_"+id).fadeOut("slow"); }); } }  

这是php的html输出:

  

如果没有看到调用函数的代码/ html,我很难肯定地说,但我认为这是以某种方式附加到onclick处理程序。 因此,如果您不阻止默认操作(在a标记的href之后),它将刷新页面。 您需要从处理函数返回false或从中调用event.preventDefault()

我会用这个标记代替:

  

通过在dom中编码rowid(在本例中为value ),我们可以在函数中访问它,而无需将其硬编码到函数调用中并使处理程序保持不引人注目。

 // pulling this into a full definition for clarity // you could of course just use an anon function inside you $.click call function handleDelete(event){ event.preventDefault(); var $this = $(this); var rowId = $this.val(); deleterow(rowId); return false; } $('button.fg-delete').click(handleDelete); 

演示: http : //jsfiddle.net/eBa7v/1/