只运行一次javascript函数

我有这个简单的javascript函数:

 var popup = '0'; if(popup == '0') { $(document).ready(function () { $(document).on('click', '.button', function(){ alert('test'); popup = '1'; }); }); }   

我希望该function仅在第一次单击时发出警报,但它仍然有效,尽管我将popup的值更改为1

你需要的是.one()函数。 它确保代码仅为您触发一次。

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

文档示例:

 $( "#foo" ).one( "click", function() { alert( "This will be displayed only once." ); }); 

编写如下代码:

  

设置单击侦听器后,之前的if语句的位置不再执行。 只有点击function里面的代码。

或者,您可以取消绑定onClick侦听器,而不是设置popup = '1' 。 请尝试以下方法:

  

更简洁,就像Mathletics所提到的那样,可以清除内存中不必要的回调。

尝试:

  

你有一个函数将popup设置为1,但从未再次检查它的值。 这样它就会被检查并且应该正常工作。