Jquery代码在页面加载时多次运行

时间:2012-04-30 19:52:11

标签: jquery google-maps-api-3 click

我有以下代码,此代码在用户点击链接时运行。但是,当用户访问页面以加载默认地址时,我还需要最初加载它。所以在这段代码之后我有$('。viewmap')。click();

问题在于,当我这样做时,针对具有类视图的每个链接运行单击操作。是否可以使用默认值为0的mapid运行此代码一次,这样我可以重复使用此函数进行地图的默认加载,然后如果有人用viewmap类点击其中一个链接?或者我是否必须创建单独的功能?一个用于默认加载,一个用于单击操作?

$('.viewmap').click(function() {

    var id = $('#id').text();
    var mapid = $(this).attr('title');

    $.ajax({
        cache:false,
        url:'path/to/script'
        dataType:'json',
        success: function(data) {

            $('#currmap').gMap(
                    {
                        latitude   : data.lat,
                        longitude  : data.lon,
                        address    : data.address,
                        maptype    : 'ROADMAP',
                        zoom       : 8,
                        markers:[{
                                     latitude    : data.lat,
                                     longitude   : data.lon,
                                     address     : data.address,
                                     html        : data.display
                                 }]

                    }

            );

        }

    });

});

2 个答案:

答案 0 :(得分:1)

试试这个:

$('.viewmap:first').click();

答案 1 :(得分:1)

尝试将处理代码放入其自己的功能中。然后,您可以直接在页面加载时调用它,也可以在元素上发生单击事件时调用它。试试这个:

function updateMap() {
    var id = $('#id').text();
    var mapid = $(".viewmap").attr('title');

    $.ajax({
        cache:false,
        url:'path/to/script'
        dataType:'json',
        success: function(data) {    
            $('#currmap').gMap({
                latitude   : data.lat,
                longitude  : data.lon,
                address    : data.address,
                maptype    : 'ROADMAP',
                zoom       : 8,
                markers:[{
                    latitude    : data.lat,
                    longitude   : data.lon,
                    address     : data.address,
                    html        : data.display
                }]
            });
        }
    });
}

updateMap();
$('.viewmap').click(updateMap);

这样就可以避免必须手动触发导致问题的元素上的click事件。