为什么没有达到fadeOut的功能?每次运行该函数时,它都会刷新页面而不是使用AJAX。
<script type="text/javascript">
function deleterow(id){
if (confirm('Are you sure want to delete?')) {
$.post('delete.php', {id: +id, ajax: 'true' },
function(){
$("#row_"+id).fadeOut("slow");
});
}
}
</script>
这是php的html输出:
<button onclick="deleterow('.$entry['rowid'].')" class="fg-button fg-button-icon-left ui-state-default ui-corner-all"><span class="ui-icon ui-icon-trash"></span></button>
答案 0 :(得分:3)
如果没有看到调用该函数的代码/ html,我很难肯定地说,但我认为它以某种方式附加到onclick
处理程序。因此,如果您不阻止默认操作(在href
标记的a
之后),则会刷新页面。您需要从处理函数返回false或从中调用event.preventDefault()
。
我会改用这个标记:
<button
value="$entry['rowid']"
class="fg-delete fg-button fg-button-icon-left ui-state-default ui-corner-all">
<span class="ui-icon ui-icon-trash"></span>
</button>
通过在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);