![](/img/trans.png)
[英]How to pass parameters to function without calling function?
[英]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.