我正在使用谷歌地图进行项目。我需要能够隐藏和显示多个地图。我不能单独使用基本的toggleDiv类型函数。这是因为当div被设置为display:none时,Google地图将忽略div的预期大小。 (无论出于何种原因,通过javascript切换它都没问题。)我可以使用GSize(宽度,高度),但它无法处理百分比。由于我需要100%,100%的地图,这不是一个选项。我找到了解决它的方法,即使用onClick调用第二个地图的函数,而不是使用body onLoad加载所有函数。但是,然后不保存地图的缩放,只是重新加载地图。
因此,我需要检查是否已调用某个函数,如果是,则不要回想它。我无法弄清楚如何做到这一点。任何帮助表示赞赏。
谢谢。
答案 0 :(得分:7)
var doOnce = function () {
// do something
doOnce = function () {}
}
至于原始问题,如果您要运行一次的功能是点击事件处理程序,那么您最好remove the click event listener。
答案 1 :(得分:2)
如此定义变量。 var beenFired = false;
执行此操作:
function myFunction()
{
if(!beenFired)
{
//TODO FUNCTION
beenFired = true;
}
}
那将检查是否还没有被解雇,如果没有解雇它。你甚至可以围绕函数调用本身来做。
if(!beenFired)
myFunction()
function myFunction()
{
//TODO FUNCTION
beenFired = true;
}
答案 2 :(得分:1)
如果我理解:
var isCalled = false;
function f() {
if (!isCalled) {
isCalled = true;
// ...
}
}
答案 3 :(得分:1)
var func = (function(){
var first = true;
return function( a, b, c){
if ( !first ){
return;
}
first = false;
console.log( arguments );
}
})();
func( 1, 2, 3); // in console : [ 1, 2, 3]
func( 1, 1, 1); // nothing happens;