jQuery UI小部件选项和方法之间的语义差异是什么?
使用定义值选项的选项对象初始化滑块窗口小部件。
$('#mySlider').slider({ value: 10});
获取价值选项。
var optValue = $('#mySlider').slider('option', 'value');
获得价值。
var methodValue = $('#mySlider').slider('value');
optValue和methodValue可能有所不同吗?
答案 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")