如何根据屏幕大小(重新)初始化具有不同选项的工具提示?

时间:2016-09-14 19:09:27

标签: javascript jquery css tooltip tooltipster

所以我使用tooltipster.js库提供工具提示,并尝试在不同的屏幕尺寸上更改工具提示的默认距离。

以下是默认init的外观:

  $(inputTooltipTrigger).tooltipster({
    distance: 24,
    theme: 'test',
    trigger: 'custom'
  });

如果窗口宽度大于641px,则距离变为6

  if ($(window).width() > 641){
    $(inputTooltipTrigger).tooltipster({
      distance: 6,
      theme: 'test',
      trigger: 'custom'
    });
  }

如果窗口调整大小然后大于641px,则距离变为6

  $(window).resize(function(){
    if ($(window).width() > 641){
      $(inputTooltipTrigger).tooltipster({
        distance: 6,
        theme: 'test',
        trigger: 'custom'
      });
    }
  });

如果窗口宽度大于641px,如何让插件重新初始化调整大小?我尝试使用CSS,但我必须使用!important标志来覆盖由tooltip插件生成的内联JS,这是不赞成的。

2 个答案:

答案 0 :(得分:2)

首先使用destroy method,然后重新初始化工具提示:

$(window).resize(function() {

    if ($(this).width() > 641) {

        $(inputTooltipTrigger).tooltipster('destroy'); // no callback method, so try a setTimeout to re-initialize

        setTimeout(function () {
            $(inputTooltipTrigger).tooltipster({
                distance: 6,
                theme: 'test',
                trigger: 'custom'
            });
        }, 250);

    }
});

答案 1 :(得分:1)

我会尝试将其全部写为一个jQuery函数:

jQuery(function($){
    if ($(window).width() >= 641){
        $(inputTooltipTrigger).tooltipster({
            distance: 6,
            theme: 'test',
            trigger: 'custom'
        });
    }
    $(window).resize(function () {
        if ($(window).width() >= 641) {
            $(inputTooltipTrigger).tooltipster({
                distance: 6,
                theme: 'test',
                trigger: 'custom'
            });
        }
    });
});