簡體   English   中英

載入事件中的Javascript / JQuery

[英]Javascript/JQuery on load event

當前,我有一個腳本,當您單擊“查看地圖”鏈接時會打開一個Google Map。 這些都是在JQuery中完成的。

我正在嘗試對其進行重做,以便在頁面加載時立即打開地圖。 這並不一定是無縫的或完美的像素,但是我們需要的是無需單擊“查看地圖”鏈接即可彈出地圖。

下面是相關代碼:

<script type="text/javascript">
/* <![CDATA[ */
    jQuery.noConflict();
    (function($) {

        $(function() {

            // Map global vars
            var map;
            var marker;
            var center;

            // initialize Google Maps API
            function initMap() {

                // Define Map center
                center = new google.maps.LatLng('<?php echo $lat; ?>','<?php echo $long; ?>');

                // Define Map options
                var myOptions = {
                  'zoom': 10,
                  'center': center,
                  'mapTypeId': google.maps.MapTypeId.ROADMAP
                };

                // Load Map
                map = new google.maps.Map(document.getElementById('job_map'), myOptions);

                // Marker
                marker = new google.maps.Marker({ position: center, map: map, title: "<?php echo $title; ?>" });

            }

            // Slide Toggle
            $('a.toggle_map').click(function(){
                $('#share_form').slideUp();
                $('#apply_form').slideUp();
                if (!map) initMap();
                $('#job_map').slideToggle(function(){
                    google.maps.event.trigger(map, 'resize');
                    map.setCenter(center);
                });
                $('a.apply_online').removeClass('active');
                $(this).toggleClass('active');
                return false;
            });

        });
    })(jQuery);
/* ]]> */

function actuateLink(link)
    {
       var allowDefaultAction = true;

       if (link.click)
       {
          link.click();
          return;
       }
       else if (document.createEvent)
       {
          var e = document.createEvent('MouseEvents');
          e.initEvent(
             'click'     // event type
             ,true      // can bubble?
             ,true      // cancelable?
          );
          allowDefaultAction = link.dispatchEvent(e);           
       }

       if (allowDefaultAction)       
       {
          var f = document.createElement('form');
          f.action = link.href;
          document.body.appendChild(f);
          f.submit();
       }
}
actuateLink(document.querySelectorAll('.toggle_map'));
</script>

您可以在這里看到我在說什么的示例: http : //www.psychiatryjobs.io/jobs/seattle-attending-psychiatrist/

正如您在我的代碼中看到的那樣,我嘗試調用.click事件並用我的代碼進行模擬,但是經過幾個小時的工作仍然沒有成功。

提前致謝。

當您需要執行的所有操作都是運行initMap函數時,嘗試以編程方式單擊鏈接以打開地圖是很長的路要走。 在單擊偵聽器注冊之前或之后,您可以添加對initMap的調用嗎?

jQuery.noConflict();
(function($) {

    $(function() {

        // Map global vars
        var map;
        var marker;
        var center;

        // initialize Google Maps API
        function initMap() {

            // Define Map center
            center = new google.maps.LatLng('<?php echo $lat; ?>','<?php echo $long; ?>');

            // Define Map options
            var myOptions = {
              'zoom': 10,
              'center': center,
              'mapTypeId': google.maps.MapTypeId.ROADMAP
            };

            // Load Map
            map = new google.maps.Map(document.getElementById('job_map'), myOptions);

            // Marker
            marker = new google.maps.Marker({ position: center, map: map, title: "<?php echo $title; ?>" });

        }

        // Slide Toggle
        $('a.toggle_map').click(function(){
            $('#share_form').slideUp();
            $('#apply_form').slideUp();
            if (!map) initMap();
            $('#job_map').slideToggle(function(){
                google.maps.event.trigger(map, 'resize');
                map.setCenter(center);
            });
            $('a.apply_online').removeClass('active');
            $(this).toggleClass('active');
            return false;
        });

        //
        //show the map at start by default
        //
        if (!map) initMap();

    });
})(jQuery);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM