关闭菜单后销毁typeahead

时间:2013-09-19 06:28:05

标签: javascript jquery css typeahead typeahead.js

我有一个搜索框,当我点击它时,我会初始化typeahead,来自服务器的一些数据。根据当前页面的不同,我需要在搜索下拉列表中显示/隐藏页脚。

根据我的需要,我采用了破坏先行者的方法,然后重新创建它。通过这种方式,我也可以刷新服务器上的数据,以防万一发生变化。

对于destroy我在函数顶部使用这个this.$("#searchQuery").typeahead('destroy');,需要初始化typeahead,但问题是菜单没有被销毁。如果我看一下dom,就会创建4-5甚至更多的预先菜单。

所以我的问题是,如何才能正确'重新初始化'一个预先输入菜单?

我忘了提到我正在使用twitter typeahead

1 个答案:

答案 0 :(得分:5)

您不需要通过此处显示的jQuery引用this

this.$("#searchQuery")

你应该做的

$("#searchQuery").typeahead("destroy");

如果没有看到更多示例,我会说你的问题可能是因为你的函数中的this被绑定到了一个与你期望的对象不同的对象。

请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

您的行已在您的功能中,因此您无法保证thisWindow,并且在这种情况下您无需使用它。

如果这不是问题,那么请提供完整的html和javascript示例,最好是在JsFiddle上。