我的特定用法案例是,我正在使用.net回发来显示具有与之相关的工具提示的元素的更新面板。我已经在页面上初始化了ZURB Foundation(提供工具提示)脚本,并且首页工具提示非常有用。回发后,我想*重新*初始化脚本,以便这些新的工具提示项绑定(bind)到“悬停”事件。
通用使用情况是指以任何方式添加启用了工具提示的新元素的任何情况。
在我看来,“悬停”绑定(bind)是在页面init上完成的,以现有的“.has-tip”元素集合进行处理,但是将来的“.has-tip”元素即将出现。
我想做以下事情:
a)重新初始化工具提示插件,并搜索新的.has-tip元素以将“hover”事件附加到该元素。
尝试了多种尝试重新初始化的方法,但是
$.fn.tooltips('init');
似乎是最有希望的,因为它成功地在脚本中调用了init方法,但未将悬停事件绑定(bind)到新的.has-tip元素。
最佳答案
编辑/说明:
https://github.com/zurb/foundation/pull/465
(您可以自行修复,请阅读拉取要求以获取更多信息),此错误已修复,因此您可以
使用以下命令触发整个页面的工具提示刷新:
$(document).tooltips('reload');
原始答案
如果您还没有弄清楚,jquery.tooltips.js会有一个名为.reload的方法/函数,实际上似乎是最有前途的(代码来自Foundation插件):
reload : function() {
var $self = $(this);
return ($self.data('tooltips')) ? $self.tooltips('destroy').tooltips('init') : $self.tooltips('init');
},
它实际上只是其他方法的链条,但是最好在.init之前进行.destroy以避免双重提示或其他冲突。