オプション要素の非常に長いリストを選択リストに追加するために、それらをオンクリックで追加します。リストが複数回追加されるのを防ぎたい。どうやってやるの?
$("#skiresort").click(function(){
$("#skiresort").load("/v3/inc/review.php");
});
オプション要素の非常に長いリストを選択リストに追加するために、それらをオンクリックで追加します。リストが複数回追加されるのを防ぎたい。どうやってやるの?
$("#skiresort").click(function(){
$("#skiresort").load("/v3/inc/review.php");
});
イベントハンドラを一度だけ実行する方法があります: .one()
:
$("#skiresort").one('click', function(){
$("#skiresort").load("/v3/inc/review.php");
});
Felixの回答は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