繁体   English   中英

使用$ .widget工厂覆盖jQuery UI自动完成选项

[英]Using the $.widget factory to override jQuery UI Autocomplete options

我决定编写一个自定义窗口小部件,以扩展并覆盖标准的“自动完成”窗口小部件。

$ .widget工厂的官方文档中提到了继承,但是似乎无法覆盖原始的窗口小部件选项(即,不只是添加到它们)。

例如,我无法使用以下代码重新定义source选项(默认为null):

$.widget("ui.productSearch", $.ui.autocomplete, {
    bla: 15,
    source: function( request, response ) {
       response($.ui.autocomplete
                .filter(["a", "b", "c"],request.term));
    },
    minLength: 2        
});

在JS Bin上尝试了上面的代码。 如果检查生成的窗口小部件,则可以看到bla已添加到选项中,但是sourceminLength仍反映$ .ui.autocomplete中定义的默认值。 source仍然为null,因此引发错误: this.source不是function

我究竟做错了什么? 并且,如果这是$ .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
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM