Уничтожить/скрыть всплывающие подсказки twitter bootstrap при использовании pjax

У меня были некоторые проблемы с всплывающими подсказками начальной загрузки Twitter, которые не удалялись из элемента DOM, когда используя pjax в приложении Rails. Например, когда я навожу курсор на элемент с подсказкой, а затем щелкаю ссылку на другую страницу, подсказка останавливается. Мое текущее решение по удалению всплывающих подсказок выглядит следующим образом:

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

Есть ли более эффективный/эффективный способ сделать это?


person keruilin    schedule 16.01.2013    source источник
comment
Мне кажется, подходящий метод   -  person Purple Hexagon    schedule 17.01.2013


Ответы (1)


Плагин всплывающей подсказки не позволяет вам создавать его дважды, поэтому проверка не нужна, вы можете упростить свой код до следующего.

App.Utils.Tooltip = {
  triggerAll: function(element) {
    element.tooltip('show');
  },
  destroyAll: function() {
    $('[rel=tooltip]').tooltip('destroy');
  }
};
person benembery    schedule 01.10.2013