google.maps.event.addListener(marker, 'dragend', (function(marker, f) {//这里
return function()//这里
{
})(marker, f));//这里
这三个点
跟这个的区别
google.maps.event.addListener(marker, 'dragend', function(marker, f) {//这里
});
google.maps.event.addListener(marker, 'dragend', (function(marker, f) {
return function()
{
if(confirm("Are you sure you want to change lat/lng?")){
var park_id = ID[f];
var lat = this.getPosition().lat();
var lng = this.getPosition().lng();
$.ajax({
type: "POST",
url: "<?php echo base_url() ?>Admin/updateParkid",
data: {park_id: park_id, latitude: lat, longitude: lng},
dataType: '',
success: function(result){
alert(result);
//marker.setIcon(iconBase);
}
});
} }
})(marker, f));
先看第二个
这个是很普通的函数回调,监听到‘dragend’(是个事件吗?),触发function(marker, f),函数(不会立即执行)内有return就return
再看第一个
跟第二个类似,但是注意括号,绑定'dragend'(事件?)时就会触发function(marker,f),并且返回函数 return function() ,最终触发'dragend'(事件?)时执行return function()