到目前爲止,我還沒有能夠在Javascript中使用任何Delegate函數教程。更不用說那些帶參數的。Javascript委託問題
希望我目前的問題會提供一個很好的例子。 (XXXX()是我傳遞給Fee()的函數)
我現在的方式是,我的「委託」(XXXX())在Fee()被調用後立即執行,而不是在我想要時它被稱爲(內費某處())
一行代碼,調用函數:
Fee(prod, item, "usage", i, y, XXXX(prod, y));
功能:
function Fee(prod, item, name, i, y, func) {
var open = false;
var prefix = "#" + prod + name;
$(prefix + y).click(function() {
var feeBoxName = prefix + "FeeBox" + y;
if (open == false) {
FeeOpen(prefix, y);
func; //delegate is called here
AddFeeButton(feeBoxName, "addFeeBtn2");
open = true;
} else {
FeeClosed(prefix, y);
open = false;
}
});
}
委託功能:
function XXXX(prod, y) {
var deducedFeeBoxName = "#" + prod + "usageFeeBox" + y;
alert(deducedFeeBoxName); //at present, this is called immediately when Fee is executed
UsageFeeBoxHeader(deducedFeeBoxName);
UsageFeeBoxData(deducedFeeBoxName, prod, y);
}
評論?
與布爾值比較時,使用嚴格比較('==='和'!==')。定期的比較可能會迫使你的布爾人數字 - 你當然不希望這樣。 (如果另一個操作數不是布爾值,則會發生強制。) – 2011-03-26 23:17:56