Javascript 在菜单关闭后销毁typeahead
我有一个搜索框,当我点击它时,我在上面初始化typeahead,以从服务器获取一些数据。根据当前页面的不同,我需要在搜索下拉列表中显示/隐藏页脚 我采用的方法是先销毁typeahead,然后根据需要重新创建它。通过这种方式,我还从服务器刷新数据,以防发生更改 对于destroy,我使用thisJavascript 在菜单关闭后销毁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
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。$(…)
您只需执行$(“#搜索查询”)。提前键入(“销毁”)代码>这可能会导致问题,具体取决于您所说的正在使用的函数,该行位于。。。因为此
可能不再代表窗口
请参见