function plotmarker(z=false) {
console.log(z);
if(z >= assets.length || z==-1) {
return false;
}
if(z!=-1) {
//console.log(z +' === '+ assets.length);
var myLatLng = {lat: parseFloat(assets[z].lati), lng: parseFloat(assets[z].longi)};
jQuery('#impforpause').attr('data-z', z);
jQuery('#impforpause').attr('data-latlng', myLatLng);
var result = [parseFloat(assets[z].lati), parseFloat(assets[z].longi)];
transition(result);
z++;
steps++;
if(steps == 8) {
console.log(result);
map.panTo(myLatLng);
//map.setZoom(13);
steps = 0;
var thisasset = assets[z];
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
draggable: false,
icon : "<?php echo base_url(); ?>assets/newicon/circle_orange.png",
});
(function (marker, thisasset){
google.maps.event.addListener(marker, "click", function (e){
infoWindow.setContent(popup(thisasset));
infoWindow.open(map, marker);
});
})(marker, thisasset);
}
setTimeout(function(){ plotmarker(z) }, 500);
}
}
这是我的jQuery函数,一旦通过单击启动,我就会从执行本身内部调用该函数。我无法做的是,我想通过再次点击停止执行此功能。我尝试将z==-1
作为参数传递,但没有成功。
有人知道如何实现这个目标吗?
答案 0 :(得分:3)
如果我理解正确,你不能再次调用它并传递z = -1,因为那样你实际上会再次运行它。 你需要做的是在函数外面有一个标志,它会说它不再活动了。 类似的东西:
var isActive = true;
function plotmarker(z=false){
if (!isActive) return;
....
}
在你的onClick(第二个)中将其设置为false。