在Rails应用程序上使用pjax时,我遇到了一些twitter bootstrap工具提示not being removed from the DOM元素的问题。例如,当我使用工具提示鼠标悬停元素时,然后单击指向另一个页面的链接,工具提示将被冻结。我目前解除工具提示的解决方案如下:
App.Utils.Tooltip = {
triggerAll: function(element) {
if (element.data('tooltip-loaded') == true) { return; }
element.data('tooltip-loaded', true).tooltip().trigger('mouseover');
},
destroyAll: function() {
var tooltips = ($('[rel=tooltip]').get());
$.each(tooltips, function() {
$(this).tooltip('destroy');
});
}
};
$(document).on('mouseover', '[rel=tooltip]', function() {
App.Utils.Tooltip.triggerAll($(this));
});
$(document).on('pjax:beforeSend', function() {
App.Utils.Tooltip.destroyAll();
});
有更有效/更有效的方法吗?
答案 0 :(得分:1)
工具提示插件阻止您将其实例化两次,因此无需检查您可以将代码简化为以下内容。
App.Utils.Tooltip = {
triggerAll: function(element) {
element.tooltip('show');
},
destroyAll: function() {
$('[rel=tooltip]').tooltip('destroy');
}
};