现在有这么个代码<script type="text/javascript">
        var getVal;
        $.get("WebServic.ashx?Item=getVal", null, function (returnVal)
        {
                getVal = returnVal;
                $("#div1").html(getVal);
        });
</script>这段代码执行的话,ID为div1的元素肯定能显示返回的值,但是如果代码这样,就不行了<script type="text/javascript">
        var getVal;
        $.get("WebServic.ashx?Item=getVal", null, function (returnVal)
        {
                getVal = returnVal;
        });
        $("#div1").html(getVal);
</script>听别人说用回调函数解决,请高手指点!谢谢!! 

解决方案 »

  1.   

    你为什么要这样做呢?第一个函数本身就是正解,即使你所说的所谓回调,也要在 $.get 的参数 function() 中来回调,如:
    $.get(url, function(rs) {
      callback(rs);
    });function callback(rs) {
      $("#div1").html(rs);
    }
    不过这样跟你直接把那个语句放在 function() 中有区别吗?除非函数很长,从便于阅读的角度来单独提出一个函数来,要不毫无意义。
      

  2.   

    $.get(url, callback(rs));function callback(rs) {
    $("#div1").html(rs);
    }
      

  3.   

    function callback(rs) {
    $("#div1").html(rs);
    }$.get(url, callback);
      

  4.   

    <script type="text/javascript">
            var getVal;
            $.get("WebServic.ashx?Item=getVal", null, 
              function (returnVal) // 这个就是回调函数
              {
                    $("#div1").html(returnVal); 
               });
            
    </script>
      

  5.   

    <script type="text/javascript">
            $.get("WebServic.ashx?Item=getVal", null, function (returnVal)
            {
                    displayValue(returnVal);
            });
            function displayValue(val){
                    $("#div1").html(val);
            }
    </script>
      

  6.   

    $.get回调函数原理就是通过XMLhttp对象的readystatechange事件代码,$.get默认都是异步的所以只能设置同步,等回调函数执行完后,再执行后面的代码,函数外的值才能获取returnVal的值
    使用ajax函数
    var html = $.ajax({
      url: "some.php",
      async: false
    }).responseText;或者在全局设置Ajax属性
    $.ajaxSetup({
      async: false
      });