在jquery [duplicate]中将ajax结果存储在元素的数据属性中

问题描述 投票:0回答:1

我有api电话从后端获取所有车辆细节。页面加载成功后,我设置了超时1秒来运行此ajax调用并获取数据并将其存储在元素的.data()中,如下所示:

var ajaxCall = function (url, params) {
    return  $.ajax({
        data:params,
        url:url,
        type:'get',
        dataType: 'json'
    })
};    

var getAllVehicles = function ($vehicle) {
    var url = '/get-vehicles';
    var params = {};
    var vehicles_data;
    $.when(ajaxCall(url,params)).then( function (data) {
        console.log("data", data);
        vehicles_data = data.vehicles;
        $vehicle.data("vehicles", vehicles_data);
    });
};

$ (function () {
     var $vehicle = $(".vehicle_div");
     setTimeout(function () { getAllVehicles($vehicle) }, 1000);
    console.log("Data attr", $vehicle.data("vehicles"));
});

我将所有车辆存储在$vehicle.data("vehicles")中,因为这些数据将由不同的功能访问。当我打印ajax数据时,它正在正常运行。但每当我打印$vehicle.data("vehicles")它是未定义的。那是因为异步性和setTimeout吗?请告知如何解决此问题。

javascript jquery html5
1个回答
0
投票

定义一个js变量是在没有$的情况下完成的

© www.soinside.com 2019 - 2024. All rights reserved.