仅当布尔值为true时才运行JavaScript函数

run JavaScript function only if Boolean is true

本文关键字:运行 JavaScript 函数 true 布尔值      更新时间:2023-09-26

我试图让OpenLayers的功能只有在用户打开的情况下才能工作。我制作了html按钮,用于调用将布尔变量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");
            }
            });

这些函数打开和关闭布尔clickSearch

var clickSearch= false;
function turnOn(){ clickSearch=true};
function turnOff(){ clickSearch=false};

这些按钮调用打开/关闭clickSearch的功能:

<button onclick="turnOn()">Turn on click-to-search</button>
<button onclick="turnOff()">Turn off click-to-search</button>

只需在希望布尔值生效时检查它。例如,在您的触发函数中:

trigger: function(e) {
    if (!clickSearch)
        { return; }
    // ...
}