Yandex映射api - 事件处理程序只执行一次

时间:2013-04-18 12:30:51

标签: javascript jquery yandex-api

我希望实现与.one() / http://api.jquery.com/one/类似的功能 与myYandexMap.events.add('click', function(e){}) 。这意味着,要点击一个功能,只能运行一次,或者我可以用其他功能替换它。

我试图删除函数末尾的内部函数,但我没弄明白该怎么做。这基本上就是我所做的

yxMap.events.add('click', function (e){ add_wp_map_click(e, num, color) });

function add_wp_map_click(e, num, color){
  ...
  yxMap.events.remove('click', function (e){ add_wp_map_click(e, num, color) });
}

2 个答案:

答案 0 :(得分:1)

您还可以尝试将.once方法用作:

yxMap.events.once('click', handler, context);

答案 1 :(得分:0)

你必须删除相同的处理程序,重新声明该函数不起作用,因为它是javascript(function() {} === function() {} -> false)的两个不同函数。

尝试:

var clickHandler = function(e) { 
    yxMap.events.remove('click', clickHandler);

    add_wp_blah(); 
};

yxMap.events.add('click', clickHandler);