jQuery Tools Tooltip - Изменить заголовок - PullRequest
15 голосов
/ 11 июля 2011

Возникла проблема с всплывающей подсказкой для инструментов плагина jquery (http://flowplayer.org/tools/tooltip/index.html) Мне нужно изменить название элемента ..

   reloadTooltip();
   $("#example").attr('title', obj.text);
   reloadTooltip();

   function reloadTooltip(){
       $("[title]").tooltip({ position: "bottom right", opacity: 1 });
   }

Часть HTML:

   <span title="text" id="example"></span>

С моим решением я наконец получил 2 названия, одно над другим. Unstyled (игнорируется JS), это новый. Название всплывающей подсказки инструментов еще не изменилось.

спасибо

Ответы [ 13 ]

19 голосов
/ 10 сентября 2012

Я собираюсь сделать то же самое. Я просмотрел код плагина Tooltip и обнаружил, как быстро и легко обновить всплывающую подсказку. Плагин удаляет атрибут title и помещает это содержимое в свойство элемента с именем tooltipText. В jQuery 1.6+ им можно манипулировать так:

// get the current tooltip content
$('#someElement').prop('tooltipText')

// set the tooltip content
$('#someElement').prop('tooltipText', 'w00t');

Плагин устанавливает свойство tooltipText (обратите внимание на заглавные буквы) в строке 55 в версии 1.3. Насколько я могу судить, изменения, сделанные таким образом, происходят мгновенно.

При выполнении прямых манипуляций с содержимым всплывающей подсказки:

var e = document.getElementById('#someElement');
alert(e.tooltipText);
e.tooltipText = 'w00t';
18 голосов
/ 02 мая 2013

понял!в соответствии с последней версией всплывающей подсказки (по состоянию на v2.3.1) https://github.com/twitter/bootstrap/blob/master/js/bootstrap-tooltip.js#L272 вам необходимо установить атрибут (не свойство) «data-original-title», потому что этот подсказка используется в данный момент.

Это хак, но я надеюсь, что это сработает для вас так же, как и для меня.

$('#example').attr('data-original-title','the new text you want'); //and that's it.
8 голосов
/ 27 августа 2011

Не знаю, ищите ли вы ответ на этот вопрос, но я потратил пару часов, пытаясь разобраться в том же самом, и нашел ответ (простой, как всегда, когда вы их найдете!)в документации API.

Каким бы ни был элемент, для которого вы устанавливаете всплывающую подсказку, получите API всплывающей подсказки и установите новое значение.то есть, если вы установите подсказку для элемента с идентификатором «myTip»

$('#myTip').data('tooltip').getTip().html("New string!") ;

Et voila.

Вам не нужно удалять заголовок (и не следует делать это, так как подсказкиленивый инициализирован).Вместо этого используйте конфигурацию cancelDefault:

http://flowplayer.org/tools/tooltip/index.html

4 голосов
/ 02 апреля 2015

Все остальные опции не работали в последней версии tooltipster (3.3.0) Я нашел эту команду работы:

$('#selectorElement').tooltipster('content', 'new title');
2 голосов
/ 11 июля 2011

Как насчет этого?

   initTooltip();
   updateTooltip(obj.text);


   function initTooltip(){
       $("[title]").tooltip({ position: "bottom right", opacity: 1 });
   }

   function updateTooltip(text){
       $("[title]").attr('title', text);
       $("[title]").data('title',text);
       $("[title]").removeAttr("title");   
    }

Я не знаю, является ли это лучшим подходом, но я думаю, что он может сработать для вас.


Верен ли текст obj.text?Что входит в obj.text?

1 голос
/ 28 февраля 2014

У меня ничего не получалось, кроме как повторно инициализировать всплывающую подсказку:

        //Save the current configuration.
        var conf = trigger.data('tooltip').getConf();
        trigger.removeData('tooltip').unbind();
        //Add the changed text.
        var newText = 'Hello World!';
        trigger.attr("title", newText);
        //Reapply the configuration.
        trigger.tooltip(conf);

Предыдущие ответы, включающие getTip (), требовали, чтобы всплывающая подсказка отображалась хотя бы один раз; в противном случае getTip () возвращает ноль.

Использование OnBeforeShow почти сработало для меня, но я не мог понять, как отменить привязку события, чтобы оно не выполнялось каждый раз, когда я показывал.

Изменение названия не помогло мне по какой-то причине, возможно, из-за того, что я использовал пользовательский макет.

1 голос
/ 19 июня 2012

Другим решением для динамического изменения заголовка является использование события onBeforeShow:

jQuery('#myselector').tooltip({onBeforeShow: tooltipBeforeShow});

...

function tooltipBeforeShow() {
  // On production you evaluate a condition to show the apropiate text
  var text = 'My new text for the <b>tooltip</b>';
  this.getTip().html(text);
}

this относится к объекту всплывающей подсказки в функции события

0 голосов
/ 16 июля 2019

Используйте это: $ (селектор) .attr («data-original-title», «ваш текст подсказки!»);

0 голосов
/ 14 ноября 2016

Это сработало для меня:

$ ('# yourID'). Attr ('data-original-title', 'New Message'). Tooltip ('show'). Tooltip ('hide');

0 голосов
/ 05 июля 2014

Все вышеперечисленное не работает с последней версией всплывающей подсказки, правильный путь:

$('#help').data($('#help').data('tooltipsterNs')[0]).Content="new content";
...