Javascript没有更新变量

时间:2012-06-17 08:41:26

标签: javascript google-maps

我的javascript代码有问题。我正在使用谷歌地图,我正在以json格式从服务器收集数据。当我在某个浏览器中检查控制台窗口中的数据时,我可以看到数据实际到来了。

我的问题是变量被读取一次,我在文本框中显示它的值。现在当我不断接收数据变量时总是一样的,任何想法为什么?而且我100%肯定我会得到不同的价值观。

以下是代码:

function updateTrucks() {
    $.ajax({
        url: "get_data.php",
        cache: false,
        dataType: 'json',
        data: {},
        error: function(jqxhr, textStatus, errorThrown) {
            alert("Error: " + textStatus + " " + errorThrown);
        },
        success: function(data) {
        for(var i = 0; i < data.results.length; i++) {
            if(trucks.hasOwnProperty(data.results[i].id)) {
                // update position
                trucks[data.results[i].id].setPosition(new google.maps.LatLng(
                parseFloat(data.results[i].lat),
                parseFloat(data.results[i].lng)));
                trucks[data.results[i].id].speed = data.results[i].speed;
            }
            else {
                // code
            }

            google.maps.event.addListener(trucks[data.results[i].id], 'position_changed', function() {
                if(typeof tracked !== "undefined") {
                    if(this.id == tracked.id) {
                        map.panTo(this.getPosition());
                        $("#speed").val(this.speed);
                    }
                }
            });     

此行无效$("#speed").val(this.speed);

2 个答案:

答案 0 :(得分:0)

我认为你需要在更新位置时更改命令的顺序,所以当position_changed被激活的速度属性将被刷新时:

if(trucks.hasOwnProperty(data.results[i].id)) {
                trucks[data.results[i].id].speed = data.results[i].speed;
                // update position
                trucks[data.results[i].id].setPosition(new google.maps.LatLng(
                  parseFloat(data.results[i].lat),
                  parseFloat(data.results[i].lng)));
              }

答案 1 :(得分:0)

在javascript中你可以做到

document.getElementById("clicks").innerHTML = stuff;

在javascript中,var称为stuff,在html中,var称为clicks