2013-01-16 113 views
4

在Rails应用中使用pjax时,我有一些twitter引导工具提示not being removed from the DOM元素的问题。例如,当我用工具提示将鼠标悬停在某个元素上时,然后点击指向另一个页面的链接,工具提示被冻结。我目前的解决方案,以消除该提示如下:使用pjax时销毁/隐藏twitter引导工具提示

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'); 
    } 
};