Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何调用函数inside.ajax?_Javascript_Jquery - Fatal编程技术网

Javascript 如何调用函数inside.ajax?

Javascript 如何调用函数inside.ajax?,javascript,jquery,Javascript,Jquery,我有下面的代码,我想在这里用下面的代码调用initialize函数; google.maps.event.addDomListener(窗口“加载”,初始化) 但我得到了这个错误;错误:未定义初始化 这里怎么了 $(function CheckinMap() { $.ajax({ type: "GET", url: "content/home/index.cs.asp?Process=ViewCheckinMap",

我有下面的代码,我想在这里用下面的代码调用initialize函数; google.maps.event.addDomListener(窗口“加载”,初始化)

但我得到了这个错误;错误:未定义初始化

这里怎么了

$(function CheckinMap() {
        $.ajax({
            type: "GET",
            url: "content/home/index.cs.asp?Process=ViewCheckinMap",
            success:     function initialize(data) {
                var center = new google.maps.LatLng(48.404840395764175, 2.6845264434814453);

                var map = new google.maps.Map(document.getElementById('map'), {
                  zoom: 2,
                  center: center,
                  mapTypeId: google.maps.MapTypeId.ROADMAP,
                  maxZoom: 4
                });

                var markers = [];
                for (var i = 0; i < data.users.length; i++) {
                  var location = data.users[i];
                  var latLng = new google.maps.LatLng(location.latitude,
                      location.longitude);
                  var marker = new google.maps.Marker({
                    position: latLng
                  });
                  markers.push(marker);
                }
                var markerCluster = new MarkerClusterer(map, markers);
            },
            error: function (data) {
                $("#checkinmap").append(data);
            }
        });
    });
google.maps.event.addDomListener(window, 'load', initialize);
$(函数CheckinMap(){
$.ajax({
键入:“获取”,
url:“content/home/index.cs.asp?Process=ViewCheckinMap”,
成功:函数初始化(数据){
var center=new google.maps.LatLng(48.404840395764175,2.6845264434814453);
var map=new google.maps.map(document.getElementById('map'){
缩放:2,
中心:中心,,
mapTypeId:google.maps.mapTypeId.ROADMAP,
最大缩放:4
});
var标记=[];
对于(var i=0;i
如果您想对jQuery
success
方法和
adddomstener
第三个参数都使用函数,那么您必须在定义它时将其存储在某个位置,而不是将其直接传递给
success

对于调用
ajax
addDomLister
,这个地方也必须在范围之内

移动
函数初始化(数据)
,使其显示在当前第1行之前


然后说
success:initialize

您正在定义
initialize
内部
CheckinMap
范围,然后在代码的最后一行尝试在该范围之外使用它。如果确实需要在两个位置都使用它,请在外部定义它,然后在
success
属性值中引用If

function initialize(data) {
    var center = new google.maps.LatLng(48.404840395764175, 2.6845264434814453);

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 2,
      center: center,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      maxZoom: 4
    });

    var markers = [];
    for (var i = 0; i < data.users.length; i++) {
      var location = data.users[i];
      var latLng = new google.maps.LatLng(location.latitude,
          location.longitude);
      var marker = new google.maps.Marker({
        position: latLng
      });
      markers.push(marker);
    }
    var markerCluster = new MarkerClusterer(map, markers);
}

$(function CheckinMap() {
        $.ajax({
            type: "GET",
            url: "content/home/index.cs.asp?Process=ViewCheckinMap",
            success: initialize,
            error: function (data) {
                $("#checkinmap").append(data);
            }
        });
    });
google.maps.event.addDomListener(window, 'load', initialize);
函数初始化(数据){
var center=new google.maps.LatLng(48.404840395764175,2.6845264434814453);
var map=new google.maps.map(document.getElementById('map'){
缩放:2,
中心:中心,,
mapTypeId:google.maps.mapTypeId.ROADMAP,
最大缩放:4
});
var标记=[];
对于(var i=0;i
实际上,使用函数表达式始终会生成匿名函数,并且不会在当前上下文中创建引用,即使匿名函数已命名。匿名函数的名称是在函数本身的上下文中定义的,也就是说,它在匿名函数内部可用,而不是在外部作用域中。任何时候创建任何对象(包括函数)时,您也会创建对它的单个引用,该引用可以在使用该对象后立即删除,除非您将其保留在某个位置。我说的是这些引用,不确定您是否也这样做。
console.log
或使用网络监视器对您收到的数据调试浏览器工具,并确保您得到了预期的结果,而不是一些错误消息。当成功事件处理程序启动时,它会从Ajax请求中传递数据。然后,窗口加载事件处理程序被触发,它得到一个事件对象……并且来自Ajax请求的数据还没有从服务器检索到事件。仔细观察之后,在加载时运行初始化函数没有任何意义。