javascript - 在菜单关闭后销毁 typeahead

标签 javascript jquery css typeahead typeahead.js

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

根据我的需要,我采用了销毁 typeahead 然后重新创建它的方法。这样,我还从服务器刷新数据,以防发生变化。

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

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

我忘了说我正在使用 twitter typeahead

最佳答案

你不需要像你在这里展示的那样通过this引用jQuery

this.$("#searchQuery")

你应该这样做

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

在没有看到更多示例的情况下,我会说您的问题可能是因为函数中的 this 绑定(bind)到与您期望的对象不同的对象。

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

你的行在你的函数中,所以你不能保证 this 会是 Window 并且在这种情况下你不需要使用它。

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

关于javascript - 在菜单关闭后销毁 typeahead,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18887544/

相关文章:

javascript - PHP 和 AJAX 加载数据

javascript - 使用 jQuery 切换?

html - 悬停背景颜色未完全显示在链接上

css - div{显示:table;} doesn't stretch up div to fit image

javascript - 关联变量及其 ID 的最佳方式

javascript - 如何对 SAPUI5 控件的 onBeforeRendering 进行单元测试?

javascript - 如何使用javascript强制关闭android键盘

javascript - 使用 onchange 函数、PHP、JAVASCRIPT 时选择列表忽略第一个值

javascript - AngularJS $scope.push 不从 $http 数据响应更新 View

javascript - 如何在评论多的时候让评论区自动滚动