全局变量未在函数外部分配

时间:2014-08-12 18:13:36

标签: jquery

我正在为全局变量赋值,但是,这在函数内部不起作用,我正在为函数内部的全局变量赋值,我在函数外部显示该值。但是,价值不会到来。有什么帮助吗?

<!doctype html>
<html lang="en">

    <head>
        <meta charset="utf-8">
        <title>eq demo</title>
        <style>
            div, .sectiontitle {
                width: 60px;
                height: 60px;
                margin: 10px;
                float: left;
                border: 2px solid blue;
            }
            .blue {
                background: yellow;
            }
        </style>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    </head>

    <body>
        <ul class="mainnav" id="mainnav1">
            <li><a href="/Home.aspx"><span>Home</span></a></li>
            <li><a href="/Test-Orders/Home.aspx"><span>Test orders</span></a></li>
            <li><a href="/Access-Arrangements/Home.aspx"><span>Access arrangements</span></a></li>
            <li><a href="/Pupils/Home.aspx"><span>Pupil registration</span></a></li>
            <li><a href="/Teacher-Assessment/Home.aspx" class="active"><span>Teacher assessment</span></a></li>
            <li><a href="/Pupil-results/Home.aspx?stage=2"><span>Pupil results</span></a></li>
            <li><a href="/Phonics/Home.aspx"><span>Phonics screening check</span></a></li>
        </ul>

        <script>
            // this is a global variable
            globalVar = "";
            $(function() {

                $("#mainnav1 li a").click(function() {
                    globalVar = $(this).find('span').text();
                    alert(globalVar); //here, the value is coming
                });
                alert(globalVar); //here, the value is not coming, i need value of global variable
            });
        </script>
    </body>

</html>

1 个答案:

答案 0 :(得分:2)

一切都很好。您正在设置globalVar="";,因此当页面加载并运行alert(globalVar);时,它会显示为空白。当您有点击事件时,它会更改globalVar。但是,它不会重新运行其他呼叫。这是一次性交易。如果您创建另一个钩子来查看globalVar值,您将看到。

这是一个小提琴:http://jsfiddle.net/0qxbtva5/