1

我想实现与 /http://api.jquery.com/one/.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) });
}
4

2 回答 2

1

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

yxMap.events.once('click', handler, context);
于 2013-09-11T16:41:47.800 回答
0

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

尝试:

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

    add_wp_blah(); 
};

yxMap.events.add('click', clickHandler);
于 2013-04-18T12:34:42.717 回答