2011-01-09 228 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