簡體   English   中英

如何在調用函數之前將參數傳遞給函數

[英]How to pass parameters into a function before calling it

我正在創建一個頁面,人們可以單擊各個鏈接,並將lat / lng數據傳遞到Google Maps API初始化函數中,但是我不知道如何將參數傳遞到該函數中。

我發現了一個類似的問題,並給出了一個答案,建議在調用Function.prototype.bind()之前使用Function.prototype.bind()將參數傳遞給回調,但是我不確定我是否理解它的工作原理,因為當前我正在獲取gmapsInit is not a function

這是我的代碼:

 function initMap(lat, lng) { return function() { var loc = {lat: lat, lng: lng}; console.log(loc); var panorama = new google.maps.StreetViewPanorama( document.getElementById('map'), { position: loc, pov: { heading: 10, pitch: 10 }, linksControl: false, panControl: false, streetViewControl: false, motionTracking: true }); map.setStreetView(panorama); } } $(function() { $('div').click(function() { var lat = parseFloat($(this).attr('data-lat')), lng = parseFloat($(this).attr('data-lng')); // Here's what I tried var gmapsInit = initMap.bind(null, lat, lng); $('.result').append('<div id="map"></div><script async defer src="https://maps.googleapis.com/maps/api/js?key=MYAPIKEY&callback=gmapsInit"></script>'); }); }); 
 <div data-lat="48.8584" data-lng="2.2945"> <div class="result"></div> 

您不需要綁定,只需確保您的callback在全局范圍內即可使用。

var lat = parseFloat($(this).attr('data-lat')),
    lng = parseFloat($(this).attr('data-lng'));

window.gmapsInit = function(){
    initMap(lat, lng)();
}
 $('.result').append( //...

暫無
暫無

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

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