0
私は自分のコードをできるだけDRYにしておきたいと考えています。 次のコードでは、以下のコードで何度も再利用する必要があります。jQueryのリファクタリングされた機能
.on("click", "a", function(e) {})
私はちょうど、addToBooking機能を複製し、それを別の名前を付け、クリックハンドラのわずかな変更を行うが、それは無駄な繰り返し感じている可能性があります。
おそらくコードブロックをaddToBooking関数に渡すことはできますか? また、私が気づいていないもう一つのクールで効率的な方法があります。
完全なコードブロック機能で
var addToBooking = function(that, event) {
var left, top;
event.stopPropagation();
//Turn off all calendar tracking
$(".track").off();
//Get proper sticky positioning (Checks to make sure it wont display off screen)
left = getPosition(".add_to_booking", "left");
top = getPosition(".add_to_booking", "top");
//Position sticky, display and listen for click event to see what to do next
$(".add_to_booking").css({top: top, left: left})
.fadeIn('fast')
.on("click", function(e) { e.stopPropagation(); })
.on("click", "a", function(e) {
if($(this).text() === "YES") {
//Close dialog
closeTT();
//Open new add to booking box
addBooking(that, event);
} else {
closeTT();
}
});
}
あなたの例では、どのように関数から変数を渡すのですか? http://jsfiddle.net/SqZm4/1/ – EasyCo
パラメータを渡すためにcall()を使用する方法を示すために編集されています。 – epascarello