ajax错误
ajax异常$(.delete).click(function(){var id $(this).attr(name)var canBeDeleted false$.get(
ajax异常
$(".delete").click(function(){var id = $(this).attr("name");var canBeDeleted = false;$.get("<c:url value='/user/canBeDeleted.jhtml'></c:url>",{ID : id},function(data){canBeDeleted = data.canBeDeleted;if(!data.canBeDeleted) {alert("无法删除用户,原因:" + data.errorInfo);}});return canBeDeleted;});
这段代码很诡异,firebug单步调试能通过,但是直接运行就是不会触发删除动作。
经过反复实验发现,$.get是异步的,也就是说,js在执行完$.get的之后,不会等$.get执行完再执行后面的语句,而是直接执行它后面的语句,这样就造成几乎canBeDeleted一直是false,所以一直触发不了删除操作。
单步调试的时候,因为有一定的延迟时间的,而且在本地,$.get方法一般能做完,所以可以触发删除操作。
改法有很多种,一种是async(同步)置为true,一种是$(".delete")一直返回false,ajax回调中做$.get的方法。