var name= "";
        window.onload = function () {
            $.get("name.ashx", null, function (data) {
                name= data;
            });
        alert(name);
name= data;时,值还在,弹出警告,name又为空了?
有什么办法留住值

解决方案 »

  1.   

    你错了吧,name=data的时候值是在的
    但是你弹出的时候, 那时候name还没有值吧
    因为 你name=data是在onload里执行的,,而执行前alert(name),这个name自然为空的       var name= "";
            window.onload = function () {
                $.get("name.ashx", null, function (data) {
                    name= data;
                });
            alert(name);//这句要比name=data先执行你可以这样试试
    <input type="button" onclick="func()"/>
    <script type="text/javascript">
    function func()
    {
    alert(name)
    }
    </script>
      

  2.   

    上面有一个地方说错了,不是onload的原因,而是回调的原因
    回调函数是在最后执行的
      

  3.   

    这样给name赋值是没问题的。$.get(...)是异步请求的意思,异步的意思就是这个请求进行的同时,本页的js代码继续执行,当然后面的alert要比请求在回调回来的 先执行了。
      

  4.   

      var name= "";
            window.onload = function () {
                $.get("name.ashx", null, function (data) {
                    name= data;
                    alert(name);
                });
    可以吗?
      

  5.   


            var name= "";
            window.onload = function () {
                $.get("name.ashx", null, function (data) {
                    name= data;
                    alert(name);
                });
            alert(name);
            }
    顺序我看了,这回我用了两个alert,断点看,是先执行回调函数的,第一回alert有值,第二回没有了。
      

  6.   

    这个当然是可以的,我想让值保存在变量中,可是跳到回调函数外,值(name)就为空了。
      

  7.   

    var   name;
    $(function(){
    $.get( "name.ashx ",   null,   function   (data)   {
                                    name=   data;
                                    alert(name);
                            }); 
    });
    这样呢?
      

  8.   


    与其这样浪费时间折腾 不如花个半小时 好好看看ajax的教程