0

我在搞乱一些代码,但我正在努力实现我想要的。在这里的示例中,我有一个地图,当我的字段中有坐标时显示:

http://jsfiddle.net/spadez/xJhmk/9/

// Generic Map Display
function mapDisplay() {

        var latval = $('#lat').val(),
            lngval = $('#lng').val();
        if ($.trim(latval) != '' && $.trim(lngval) != '') {
            var mapOptions = {
                zoom: 8,
                center: new google.maps.LatLng(latval, lngval),
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                disableDefaultUI: true,
                scrollwheel: false,
                draggable: false
            };
            var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
            $('#map_canvas').removeClass('hidden');
        } else {
            $('#map_canvas').addClass('hidden');
        }
    }

我想要做的是每页执行一次,这样如果页面加载时字段中有值,则显示地图,但如果在页面加载或更改后删除值,地图将不会改变,因为它仅在页面加载开始时读取变量。

有人可以在我的jsfiddle上告诉我如何显示吗?

4

3 回答 3

2

您不是在调用该函数mapDisplay();,而是在文档就绪调用中mapDisplay

jQuery(function($){
    mapDisplay();
})

演示:小提琴

于 2013-06-21T09:48:28.627 回答
1
window.onload = function(){

mapDisplay();

}

这会在 onload 事件上运行您的代码

于 2013-06-21T09:48:19.763 回答
1

采用:

$(function()
{
    mapDisplay();
}  

// Generic Map Display
function mapDisplay() {

    var latval = $('#lat').val(),
        lngval = $('#lng').val();
    if ($.trim(latval) != '' && $.trim(lngval) != '') {
        var mapOptions = {
            zoom: 8,
            center: new google.maps.LatLng(latval, lngval),
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            disableDefaultUI: true,
            scrollwheel: false,
            draggable: false
        };
        var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
        $('#map_canvas').removeClass('hidden');
    } else {
        $('#map_canvas').addClass('hidden');
    }
}

您声明一个函数,并在页面加载后( $(function() {} ),它被执行。

于 2013-06-21T09:51:52.000 回答