2013-04-18 49 views
0

我想实现类似.one()/http://api.jquery.com/one/myYandexMap.events.add('click', function(e){}) 。这意味着,要点击一个功能,该功能只能运行一次,或者我可以用其他功能替换它。Yandex maps api - 事件处理程序只执行一次

我试图删除函数结束时的内部函数,但我没有弄清楚如何去做。这基本上是我做了什么

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) }); 
} 

回答

0

您必须删除相同的处理,重新声明的功能不起作用,因为它是对JavaScript(function() {} === function() {} -> false)两种不同的功能。

尝试:

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

    add_wp_blah(); 
}; 

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

您也可以尝试使用.once方法:

yxMap.events.once('click', handler, context); 
相关问题