【问题标题】:How do you attach a custom callback function to the jquery autocomplete extension?如何将自定义回调函数附加到 jquery 自动完成扩展?
【发布时间】:2009-03-04 14:36:20
【问题描述】:

我正在使用 Dylan Verheul、Dan G. Switzer、Anjesh Tuladhar、Jörn Zaefferer 的 jquery autocomplete 1.0.2 扩展。当从自动完成控件中调用 .show() 和 .hide() 时,我正在尝试执行我自己的回调函数。我还没有找到任何方法让它真正识别我的回调函数。如果有人熟悉此控件并可以提供帮助,我将不胜感激。

【问题讨论】:

    标签: jquery autocomplete callback


    【解决方案1】:

    对不起,我没有任何简单的答案来回答你的问题,我检查了插件源代码并没有找到任何机制让你想要你想要的。我认为您必须自己更新此插件才能使其按您的意愿工作。

    想法是将你的回调添加到options 参数,然后让插件使用这些回调。首先,您必须修改插件代码。转到创建负责显示/隐藏自动完成控件的类的函数:

    $.Autocompleter.Select = function (options, input, select, config) {
    

    如果你向下滚动,你可以看到这个函数返回一个带有show() 和hide() 方法的对象。您可以添加以下代码:

    hide: function() {
        ...
        options.showCallback && options.showCallback(); // Invoke callback function if set
    },
    ...
    show: function() {
        ...
        options.hideCallback && options.hideCallback(); // Invoke callback function if set
    },
    

    最后,当您创建自动完成功能时,您应该将回调添加到您的选项中:

    $("#myTextBox").autocomplete("http://...",
    {
        showCallback : function() { /* do what you want here */ },
        hideCallback : function() { /* do what you want here */ }
    });
    

    根本没有经过测试,这只是一个快速而肮脏的解决方案。我希望这会有所帮助。

    【讨论】:

    • 它有效!你真棒!我实际上已经预先定义了我想要调用的显示和隐藏回调函数,所以我只做 showCallback:myShow, hideCallback:myHide 并且它就可以工作,再次感谢!
    • 太棒了 ;) 你可以尝试将想法/代码提交给作者,他们可能会感兴趣。
    • 干得好。新版本的 jquery-autocomplete 中提供了类似的功能:code.google.com/p/jquery-autocomplete
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2023-03-14
    相关资源
    最近更新 更多