jQuery/Javascript: 如何在函数内定义全局变量?

9

我有这段代码:

        var one;
        $("#ma1").click(function() {
            var one = 1;
        })
        $("body").click(function() {
            $('#status').html("This is 'one': "+one);
        })

当我点击body时,它会显示:“This is 'one': undefined”。我如何定义一个全局变量以在另一个函数中使用?
3个回答

21

将函数内部的var删除。

    $("#ma1").click(function() {
        one = 1;
    })

6
为了进一步说明为什么这样做是有效的,当你在函数内部使用 var 关键字时,你创建了一个新的独立的局部变量。通过去掉 var,你实际上是在说你想要向上查找之前定义的变量(在这种情况下是全局变量 one)。 - Moses
谢谢你的帮助,Rocket。那真是救了我。 - SnarkyDTheman

14

如果你想创建一个全局变量,将其绑定到 window 对象上。

window.one = 1;

12
    var one;//define outside closure

    $("#ma1").click(function() {
        one = 1; //removed var 
    })
    $("body").click(function(e) {
        $('#status').html("This is 'one': "+one);
    })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接