我希望下面的函数更灵活,并且接受多个回调函数,如果它们在参数中定义的话。允许JavaScript函数接受任意数量的参数
$(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 }
这可能吗?此外,如果参数未定义,我该如何处理?
例如,如果对该函数的一个调用定义了多个回调函数,而另一个回调函数只有一个回调函数,那么是否存在一种处理回调函数不存在的方法。
干杯,
:)
谢谢尼克我会看看我认为这种方法。 由于省略了'var'并且需要命名空间,我认为'settings'变成了全局的? – RyanP13 2010-08-27 10:04:13
@ RyanP13 - 不是全局的,因为它是一个参数名称,它是本地的函数,你已经覆盖在那里:) – 2010-08-27 10:10:21
+1对于传递一个对象,也要记住,无论你遇到什么情况你都不能记住参数(比如你的函数需要5个整数)重构它来获取一个对象。 – 2010-08-27 10:17:17