2010-12-14
jQuery UI Widget _setOption
jQuery UI widget 은 기본적으로 한번에 여러 개의 옵션을 설정할 수 있다.
$('...').somewidget('option',{aa:bb, cc:dd});
하나의 옵션을 설정할 때의 추가적인 로직을 넣으려면 _setOption() 을 재정의하면 된다.
_setOption: function(key,value){
if(key=='some'){...do something...}
}
가끔은 여러 개의 옵션을 한번에 설정할 때, 그 중 몇몇 옵션이 바뀔 경우에 대한 추가적인 로직을 넣으려면 _setOptions 를 재정의하면 된다. jQuery UI Dialog 의 코드가 가장 좋은 예제일 것이다. 다만 1.8.6 부터 지원하니까 버전에 주의하길.
_setOptions: function( options ) {
var self = this,
resizableOptions = {},
resize = false;
$.each( options, function( key, value ) {
self._setOption( key, value );
if ( key in sizeRelatedOptions ) {
resize = true;
}
if ( key in resizableRelatedOptions ) {
resizableOptions[ key ] = value;
}
});
if ( resize ) {
this._size();
}
if ( this.uiDialog.is( ":data(resizable)" ) ) {
this.uiDialog.resizable( "option", resizableOptions );
}
},
Source: http://boxcatstudio.wordpress.com/2010/12/14/jquery-ui-widget-setoption/
Category:regular
Tags:jQueryUI
Category:regular
Tags:jQueryUI