我希望下面的函数更加灵活,如果在参数中定义了多个回调函数,它可以接受这些函数。
$(function() {
function icisDashBox(colorElem, thisWidth, thisHeight, completeCallBack) {
$(colorElem).colorbox({
transition: 'none',
innerWidth: thisWidth,
innerHeight: thisHeight,
opacity: '0.5',
onOpen: function() {
},
onLoad: function() {
},
onComplete:function() {
$('#cboxLoadedContent').wrap('<div id="icis_dialog_msg" />');
completeCallBack();
},
onCleanup: function() {
},
onClosed: function() {
$('#cboxLoadedContent').unwrap();
}
});
}
icisDashBox('.example9', '500', '500', completeFunction);
function completeFunction() {
var fooClass = $("#colorbox").addClass("FOO");
var barClass = $("#colorbox").addClass("BAR");
var ajaxCnt = $.ajax({
type: "GET",
url: "http://www.payso.me.uk",
dataType: "html",
success: function(data) {
$("#colorbox").addClass("AJAX SUCCESS");
}
});
return {
x : fooClass,
y : barClass,
z : ajaxCnt
};
}
所以在理想情况下,我的函数应该像这样,不需要明确声明任何参数:
function icisDashBox() { function code here }
这是否可能?如果参数未定义,我该如何处理呢?
例如,如果一个函数调用有多个回调函数定义,而另一个只有一个,是否有一种方式可以处理缺少回调函数的情况。
谢谢,
:)
onLoadCall: function() { $('body').prepend('<span class="prepend"/>'); }
作为选项。如果是命名函数,你只需要写option: functioName
,不需要括号。 - Nick CraveronCompleteCall: "bob"
,它不会因为尝试执行"bob".call(this)
而出错,因为字符串不具有.call()
函数...这只是一种安全检查 :) - Nick Craver