仅当布尔值为true时运行JavaScript函数
我正试图让OpenLayers的功能只有在用户打开的情况下才能工作。我制作了html按钮,用于调用函数,将布尔变量仅当布尔值为true时运行JavaScript函数,javascript,Javascript,我正试图让OpenLayers的功能只有在用户打开的情况下才能工作。我制作了html按钮,用于调用函数,将布尔变量clickSearch转换为true或false。如何使该功能仅适用于clicksearch=true?这是某种if语句吗 这是运行我要打开和关闭的函数的代码: OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { defaultHandlerOpti
clickSearch
转换为true或false。如何使该功能仅适用于clicksearch=true
?这是某种if语句吗
这是运行我要打开和关闭的函数的代码:
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'double': false,
'pixelTolerance': 0,
'stopSingle': false,
'stopDouble': false
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.trigger
}, this.handlerOptions
);
},
trigger: function(e) {
var lonlat = map.getLonLatFromPixel(e.xy);
alert("You clicked near " + lonlat.lat + " N, " +
+ lonlat.lon + " E");
}
});
这些函数可打开和关闭布尔值单击搜索
var clickSearch= false;
function turnOn(){ clickSearch=true};
function turnOff(){ clickSearch=false};
这些按钮调用该功能以打开/关闭单击搜索
:
<button onclick="turnOn()">Turn on click-to-search</button>
<button onclick="turnOff()">Turn off click-to-search</button>
打开“单击以搜索”
关闭“单击以搜索”
当您希望布尔值生效时,只需检查布尔值即可。例如,在触发器函数中:
trigger: function(e) {
if (!clickSearch)
{ return; }
// ...
}
为什么不使用if(clickSearch){}block?是否需要使clickSearch初始化???,您当时可以直接调用该函数。您还没有阐明“禁用”OpenLayers对您意味着什么。它应该简单地停止触发器的运行,还是应该执行某种清理(例如,删除UI元素)?如果停止trigger
就足够了,那么trigger
中的If(单击搜索)
块就足够了。