saf*_*ara 2 javascript overriding jquery-ui widget
我决定编写一个自定义小部件,扩展并覆盖标准的自动完成小部件.
$ .widget工厂的官方文档提到了继承,但看起来不太可能覆盖原始的widget选项(即不仅仅是添加它们).
例如,我无法使用以下代码重新定义源选项(默认为null):
$.widget("ui.productSearch", $.ui.autocomplete, {
bla: 15,
source: function( request, response ) {
response($.ui.autocomplete
.filter(["a", "b", "c"],request.term));
},
minLength: 2
});
Run Code Online (Sandbox Code Playgroud)
我在JS Bin上试了上面的代码.如果检查生成的窗口小部件,您可以看到bla被添加到选项中,但source和minLength仍然反映了$ .ui.autocomplete中定义的默认值.source仍为null,因此会引发错误:this.source不是函数.
我究竟做错了什么?如果这是$ .widget的预期行为,那么覆盖选项的最佳方法是什么?
嗯,看起来就像你只是在新的小部件中定义一个函数'source'; 那没关系,但你还没有覆盖这个选项.如果你尝试了怎么办?
$.widget("ui.productSearch", $.ui.autocomplete, {
options: {
bla: 15,
source: function( request, response ) {
response($.ui.autocomplete
.filter(["a", "b", "c"],request.term));
},
minLength: 2
}
});
Run Code Online (Sandbox Code Playgroud)
?
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |