javascript - 只执行一次函数

标签 javascript jquery google-maps

我有一个在点击事件时执行的函数,但问题是我希望它只执行一次。

点击时执行的 get 函数表示绘制到目标元素的谷歌地图。该函数如下所示:

Cluster.prototype.initiate_map_assembling = function(target, latitude, longitude) {
    var canvas = $(target).children();
    var coordinates = new google.maps.LatLng(latitude, longitude);

    var options = {
        zoom: 9,
        center: coordinates,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map($(canvas)[0], options);

    var marker = new google.maps.Marker({
        position: coordinates,
        map: map
    });
};

我在 click 事件上运行它,如下所示:

Cluster.prototype.initiate_google_maps_action = function() {
    var self = this;
    return $(this.maps_wrapper_class).each(function(index, element) {
        var canvas = $(element).parents().eq(3).find(self.map_canvas_wrapper_class);
        return $(element).on('click', function(ev) {
            var latitude = $(element).attr('data-latitude');
            var longitude = $(element).attr('data-longitude');
            self.initiate_map_assembling(canvas, latitude, longitude);
            ($(canvas).hasClass('selected')) ? $(canvas).removeClass('selected') : $(canvas).addClass('selected');
            ev.preventDefault();
        });
    });
};

我想要实现的是每次单击按钮时停止绘图,因为它只需要一次,因为我只隐藏容器 div 而不是破坏它。那我该怎么做呢?我尝试在函数执行时添加临时变量(并在第一次后将其设置为 true 并在启动时将其设置为 false )并在临时变量为 true 时返回 false,但收效甚微,因为我无法在绘图函数中返回 false .

最佳答案

使用 jQuery 的 .one()

http://api.jquery.com/one/

根据 OP 的解释:总是可以为一个元素定义多个一个点击事件。

所以你可以像你已经做的那样用 .one() 定义一个,用 on() 定义另一个,让代码在第一个只运行一次。

关于javascript - 只执行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135932/

相关文章:

javascript - 绑定(bind)成员删除后调用

jquery - 我的动画卷轴滞后,为什么

javascript - 加载器 javascript sessionStorage 不起作用

java - 切换到新的 Google Maps SDK 时出现迁移错误

javascript - jquery仅在文档准备好时获取maps.google.com

android - map 不显示路况信息

javascript - 如何使用一个依赖于另一个的 2 个 XMLHttpRequest?

javascript - 如何实现必需的验证以检查用户是否输入了至少一个值

javascript - meteor react 错误: Cannot read property '0' of undefined

javascript - 具有复选框行为的 radio