Jquery 只允许onclick一次

Jquery 只允许onclick一次,jquery,event-handling,jquery-click-event,Jquery,Event Handling,Jquery Click Event,为了向选择列表中添加一个很长的选项元素列表,我单击添加它们。我想防止列表被多次添加。我该怎么做 $("#skiresort").click(function(){ $("#skiresort").load("/v3/inc/review.php"); }); 有一种方法只执行一次事件处理程序:: Felix answer非常适合jQuery,我添加它只是为了展示一种通用的JavaScript技术: function runOnce(f) { var called = false;

为了向选择列表中添加一个很长的选项元素列表,我单击添加它们。我想防止列表被多次添加。我该怎么做

$("#skiresort").click(function(){
$("#skiresort").load("/v3/inc/review.php");
});

有一种方法只执行一次事件处理程序::


Felix answer非常适合jQuery,我添加它只是为了展示一种通用的JavaScript技术:

function runOnce(f) {
   var called = false;
   return function() {
     if (!called) {
       called = true;
       return f.apply(this, arguments);
     }
   };
 }
现在您可以这样使用它:

var myNewFunction = runOnce(myFunction); // this does not run "myFunction", but returns a new one that will only run once.

myNewFunction(1, 2, 3); // runs the "myFunction" and returns whatever it returns
myNewFunction(1, 2, 3); // doesn't do anything, just returns undefined

我想防止再次单击同一个按钮,但如果用户单击另一个按钮,则上一个按钮应该可以单击……如何操作?@Uday:您可以使用一个共享变量,其中包含对上次单击按钮的引用,并与之进行比较。是的。我终于做到了。我想如果有什么功能的话。
var myNewFunction = runOnce(myFunction); // this does not run "myFunction", but returns a new one that will only run once.

myNewFunction(1, 2, 3); // runs the "myFunction" and returns whatever it returns
myNewFunction(1, 2, 3); // doesn't do anything, just returns undefined