最初に - 私は JQuery の達人ではありません ;)。複数のクリックを防ぐために、次の解決策があります(最初のクリックのみを尊重し、残りは無視します):
preventMultiClick = function() {
$(this).unbind("click");
$(this).bind("click", function() {
return false;
});
};
preventMultiSubmit = function() {
$(this).unbind("submit");
$(this).bind("submit", function() {
return false;
});
};
$("a").one("click", preventMultiClick);
$("#user").one("submit", preventMultiSubmit);
私にとってその解決策はエレガントではありません。だから私はそれを次のものにアップグレードしようとしました:
preventMultiClick = function(event) {
$(this).unbind(event);
$(this).bind(event, function() {
return false;
});
};
$("a").one("click", preventMultiClick("click"));
$("#user").one("submit", preventMultiClick("submit"));
その解決策は機能しません。誰かが理由を説明したり、関数の引数として与えられたイベントを尊重する関数をどのように書くべきか教えてもらえますか?