2011-01-09 10 views
2

非常に長いオプションリストを選択リストに追加するために、それらをクリックして追加します。私は、リストが複数回追加されないようにしたい。どうやってやるの?ただ一回onclickを許可する

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

答えて

7

一度だけのイベントハンドラを実行するための方法があります:.one()

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

同じボタンをもう一度クリックしないようにしたいが、ユーザーが別のボタンをクリックした場合、前のボタンをクリックする必要がある。 –

+0

@Uday:最後にクリックされたボタンへの参照を保持し、それと比較する共有変数を使用できます。 –

+0

ええ。ついにそれをやった。私はそれのために何らかの機能があるかもしれないと思っています。 –

2

フェリックスの答えは、私はちょうどそれのための一般的なJavaScriptの技法を表示するには、これを追加している、jQueryのに最適です。

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 
+1

+1良いアイデア... –

関連する問題