這裏我有一個小部件,我想調用一個函數一次#slider.slider();
。代碼是什麼?jquery:小部件的初始功能
$("#slider").slider({
//initial function here.
alert("A");
value: 50,
slide: function(event, ui) {
displaySlideValue();
}
});
這裏我有一個小部件,我想調用一個函數一次#slider.slider();
。代碼是什麼?jquery:小部件的初始功能
$("#slider").slider({
//initial function here.
alert("A");
value: 50,
slide: function(event, ui) {
displaySlideValue();
}
});
爲什麼不只是做
$('#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」類型的回調函數,這個回調函數在小部件被激活時調用(無論對於給定的小部件是什麼意思)。如果你只是想在第一次調用時初始化,那麼你可以讓回調函數成爲一個閉包,用來跟蹤它是否完成了初始化工作。如果它檢測到它已經完成了,它就會返回。
非常感謝! – Zebra 2010-11-03 18:42:30
你不清楚什麼時候該函數被調用。 – mikerobi 2010-11-02 14:00:53
@mikerobi:腳本加載小部件時 – Zebra 2010-11-02 14:25:09