jQuery UI选项与方法

时间:2014-05-14 14:36:56

标签: javascript jquery jquery-ui

jQuery UI小部件选项和方法之间的语义差异是什么?

使用定义值选项的选项对象初始化滑块窗口小部件。

$('#mySlider').slider({ value: 10});

获取价值选项。

var optValue = $('#mySlider').slider('option', 'value');

获得价值。

var methodValue = $('#mySlider').slider('value');

optValue和methodValue可能有所不同吗?

1 个答案:

答案 0 :(得分:1)

简短的回答是,没有语义的区别。 option仅调用底层的get / set。

关于窗口小部件方法:当您致电$(element).widget("someMethod", parameters)时,发生的事情(就问题而言)是对widgetPrototype.someMethod(parameters)的调用。

widget.("option", property)是widget方法的一个特例。作为一个getter,它直接进入底层的options对象,但是当一个setter调用widget._setOptions()函数时。来自文档:

  

选项(选项)

     

返回:jQuery(仅限插件)

     

为小部件设置一个或多个选项。

     

options类型:Object要设置的选项 - 值对的映射。

以下是对所发生情况的细分:

$('#mySlider').slider({ value: 10});
// call the slider widget's initialiser with parameter {value:10}

var optValue = $('#mySlider').slider('option', 'value');
// call the slider widget's .option() method with parameter value

var methodValue = $('#mySlider').slider('value');
// calls the slider widget's .value() method.
//
// EDIT: Yes, this CAN be different from .option(value)
// It falls on the implementer to document their widget well
// enough that users know what's going on
//
// Having said that, I have yet to see a popular jquery widget
// where .someWidgetOption() is not just a shortcut to .option("someWidgetOption")

文档非常好:http://api.jqueryui.com/jQuery.widget/