Javascript 在菜单关闭后销毁typeahead

Javascript 在菜单关闭后销毁typeahead,javascript,jquery,css,typeahead,typeahead.js,Javascript,Jquery,Css,Typeahead,Typeahead.js,我有一个搜索框,当我点击它时,我在上面初始化typeahead,以从服务器获取一些数据。根据当前页面的不同,我需要在搜索下拉列表中显示/隐藏页脚 我采用的方法是先销毁typeahead,然后根据需要重新创建它。通过这种方式,我还从服务器刷新数据,以防发生更改 对于destroy,我使用thisthis.$(“#searchQuery”).typeahead('destroy')位于需要初始化typeahead的函数顶部,但问题是菜单没有被破坏。如果我看一下dom,会创建4-5个甚至更多的type

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

我采用的方法是先销毁typeahead,然后根据需要重新创建它。通过这种方式,我还从服务器刷新数据,以防发生更改

对于destroy,我使用this
this.$(“#searchQuery”).typeahead('destroy')位于需要初始化typeahead的函数顶部,但问题是菜单没有被破坏。如果我看一下dom,会创建4-5个甚至更多的typeahead菜单

所以我的问题是,我怎样才能正确地“重新初始化”提前输入菜单


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

你不需要通过
这个
引用
jQuery

this.$("#searchQuery")
你应该这么做

$("#searchQuery").typeahead("destroy");
在没有看到更多示例的情况下,我会说您的问题可能是因为函数中的
这个
绑定到的对象与您期望的对象不同

见:

您的行位于函数内部,因此您不能保证
将是
窗口
,在这种情况下您无需使用它


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

您不需要通过
这个
引用
jQuery

this.$("#searchQuery")
你应该这么做

$("#searchQuery").typeahead("destroy");
在没有看到更多示例的情况下,我会说您的问题可能是因为函数中的
这个
绑定到的对象与您期望的对象不同

见:

您的行位于函数内部,因此您不能保证
将是
窗口
,在这种情况下您无需使用它


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

您正在使用的jquery插件是什么?您不需要通过
窗口
使用
this来引用jquery。$(…)
您只需执行
$(“#搜索查询”)。提前键入(“销毁”)这可能会导致问题,具体取决于您所说的正在使用的函数,该行位于。。。因为
这个
可能不再代表
窗口
查看您正在使用的jquery插件是什么?您不需要通过
窗口
使用
这个来引用jquery。$(…)
您只需执行
$(“#搜索查询”)。提前键入(“销毁”)这可能会导致问题,具体取决于您所说的正在使用的函数,该行位于。。。因为
可能不再代表
窗口
请参见