2011-01-09 128 views
2

为了将一长串选项元素添加到选择列表中,我将它们添加到点击。我想防止多次添加列表。我怎样才能做到这一点?只允许点击一次

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

回答

7

有执行的事件处理程序只有一次的方法:.one()

$("#skiresort").one('click', function(){ 
    $("#skiresort").load("/v3/inc/review.php"); 
}); 
+0

我想防止再次点击同一按钮,但如果用户点击另一个按钮,那么上一个按钮应该是可点击的....如何做到这一点? – 2013-11-10 10:22:50

+0

@Uday:您可以使用一个共享变量,它保存对最后点击的按钮的引用并与之进行比较。 – 2013-11-10 15:39:02

2

费利克斯的答案是完美的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