错误代码:
$("#id").on('click',cr());
function cr(){
方法体;
}
原因:因为在绑定事件时先执行了方法,再将结果返回到调用方法中。
解决:将方法写到回调函数中
$("#id").on('click',function(){
方法体;
})
外层方法参数向内层方法传递参数,可直接传入,不需要再声明变量
function setMarker(lnglats,icon,info,flag,changeIcon) { var marker = new AMap.Marker({ position: lnglats, map: map, icon:icon, topWhenClick:true }); if(null!=info && ""!=info){ marker.content = info.join(""); if(flag){ //选中变图标 marker.on('click', function (marker) { defaultIcon(); marker.target.setIcon(changeIcon) ; infoWindow.setContent(marker.target.content); infoWindow.open(map,marker.target.getPosition()); iconArray = icon; lnglatsArray = marker; }); } else{ //选中不变图标 marker.on('click', function (marker) { defaultIcon(); infoWindow.setContent(marker.target.content); infoWindow.open(map, marker.target.getPosition()); conArray = icon; lnglatsArray = marker; }); } } };