【问题标题】:Qtip hide on destroy, show on hover, Dom cleaning like bootstrap tooltipQtip 在销毁时隐藏,在悬停时显示,Dom 清理,如引导工具提示
【发布时间】:2017-06-06 16:03:23
【问题描述】:

我正在使用jquery qtip2 我希望它的行为就像引导工具提示一样,其中

  1. 悬停工具提示出现,也在 DOM 中
  2. mouseout 工具提示隐藏,也从 DOM 中移除

目标:

我的目标是我使用了大量的 qtip,它们在 DOM 中占用了不必要的空间,我希望 qtip2 仅在它处于活动状态时创建 dom 元素。

JSFIDDLE: https://jsfiddle.net/bababalcksheep/5unavg0q/4/

似乎无法使其工作。默认情况下它应该不是功能。我是否遗漏了 Docs 中的某些内容?

HTML:

<a href="#test" class="qtiptxt" title="My tooltip text">Hover here!</a>

JS:

$(document).ready(function() {
  $('.qtiptxt').qtip({
    prerender: false,
    overwrite: true,
    hide: {
      event: 'mouseout'
    },
    events: {
      hide: function(event, api) {
        var target = api.elements.target;
        var targetOptions = api.options;
        // Destroy it immediately
        api.destroy(true);
        //re initialize using existing options
        $(target).qtip(targetOptions);
      }
    }
  });
});

【问题讨论】:

标签: javascript jquery twitter-bootstrap qtip2 qtip


【解决方案1】:

看来我确实错过了文档。这是解决方案

https://jsfiddle.net/bababalcksheep/5unavg0q/7/

$(document).ready(function() {
  // 
  // from https://github.com/qTip2/qTip2/wiki/Events-Guide#delegation-on--live--delegate
  //
  $('.qtiptxt').on('mouseover', function(event) {
    $(this).qtip({
      prerender: false,
      overwrite: true,
      show: {
        event: event.type,
        ready: true
      },
      hide: {
        event: 'mouseout'
      },
      events: {
        hidden: function(event, api) {
          // Destroy it immediately
          api.destroy(true);
        }
      }
    }, event);
  });
  //
  //
});

【讨论】:

  • 虽然这确实有效,但它会间歇性地导致错误,这不是很好 - Type Error: Cannot set property 'waiting' of null
猜你喜欢
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多