如何将自定义回调函数附加到jquery自动完成扩展?
-
03-07-2019 - |
题
我正在使用Dylan Verheul,Dan G. Switzer,Anjesh Tuladhar,Jö Zaefferer的jquery autocomplete 1.0.2扩展。我试图在自动完成控件中调用.show()和.hide()时执行我自己的回调函数。我还没有找到任何方法来实际识别我的回调函数。如果有人熟悉这种控制并且可以帮助我会非常感激。
解决方案
抱歉,我的问题没有任何简单的答案,我检查了插件源代码,但没有找到任何让你想要的机制。我想你必须自己更新这个插件,让它按你的意愿工作。
我们的想法是将您的回调添加到 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 */ }
});
根本没有测试,它只是一个快速而肮脏的解决方案。我希望这会有所帮助。
不隶属于 StackOverflow