为什么Javascript全局变量不是全局的?

Jic*_*hao 1 javascript jquery javascript-events

我有一个外部的js文件处理删除一些元素.根据结果​​,我将确定是否需要刷新页面.

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
    });
Run Code Online (Sandbox Code Playgroud)

没问题是我无法deleted在jQuery事件处理程序中更改全局变量.我可以确保删除操作成功,但此变量不会将其值更改为1.

为什么?

med*_*iev 5

Ajax是异步的,因此它会deleted在您进行if else检查后设置变量.尝试将检查放入回调中.