我有一個外部js文件處理刪除某些元素。根據結果,我會確定是否需要刷新頁面。爲什麼Javascript全局變量不是全局的?
var deleted = 0; // first assume not deleted
$(function() {
$("#action a.action-delete").click(function() {
var id = $(this).parent().parent().attr("id");
$.get("modify-sale.php", { "id" : id, "action" : "delete" }, function (data) { deleted = 1; }, "text");
if (deleted) return true; // if success then refresh
else return false; // else does not refresh
});
沒有問題是我無法改變的全局變量deleted
在jQuery的事件處理程序。我可以保證刪除操作是成功的,但是這個變量不會將其值更改爲1.
爲什麼?
你確定嗎?或者你認爲?由於Ajax的異步特性,在執行Ajax回調之前會執行'if(deleted)return true'。因此:你用調試器檢查過這個值嗎? – 2010-10-02 05:56:21