这里我有一个小部件,我想在#slider.slider();
之后调用一个函数。什么是代码?
$( "#slider" ).slider({
//initial function here.
alert("A");
value: 50,
slide: function(event, ui) {
displaySlideValue();
}
});
答案 0 :(得分:1)
为什么不做呢
$('#slider').slider({ ... }).each(function() { /* your code here */ });
或者,您可以将.slider()
电话打包在您自己的迷你扩展程序中:
$.fn.sliderWithInit = function(params, init) {
return this.slider(params).each(init);
});
然后你可以说
$('#slider').sliderWithInit({ /* params */ }, function() { /* init code */ });
显然,“滑块”可以是通用的:
$.wrapWithInit = function(widgetName) {
$.fn[widgetName + 'WithInit'] = function(params, init) {
return this[widgetName](params).each(init);
});
});
然后您可以为“对话框”执行此操作,例如:
$.wrapWithInit('dialog');
$('#dialog').dialogWithInit({ /* dialog params */ }, function() { /* init code */ });
正如@mikerobi指出的那样, 时,你想要调用初始化函数并不是100%清除。大多数小部件都有一个“onFoo”类型的回调函数,当小部件被激活时调用它(对于给定的小部件意味着什么)。如果你只想在第一次调用时初始化,你可以让回调成为一个闭包,跟踪它是否曾经完成初始化工作。如果它检测到它已经完成它,它就会返回。