Jquery Tools Tooltip не исчезает - PullRequest
       34

Jquery Tools Tooltip не исчезает

4 голосов
/ 14 апреля 2011

У меня есть подсказка, которая будет отображаться поверх всего с заголовком:

$("[title!=]:not(IFRAME)").tooltip();

У меня есть список людей, которых можно добавить или удалить, вы нажимаете кнопку удаления, расположенную над человекомВы щелкаете по нему, чтобы поменять этого человека на другого.

Когда вы нажимаете кнопку «Удалить», появляется всплывающая подсказка, поскольку этот элемент имеет.Но как только вы меняете этого человека, всплывающая подсказка не исчезнет.

Я почти уверен, что причина в том, что, как только этот человек удален, у вас нет мышки, поэтому подсказка никогда не исчезнет.

Я пытался это сделать:

$('.remove-player-large a').click(function() {
  $("[title!=]:not(IFRAME)").tooltip().hide();
});

Но не повезло. Есть предложения, как это исправить?

Это имеет смысл?

Ответы [ 7 ]

5 голосов
/ 12 июня 2012

Вы можете скрыть всплывающую подсказку с помощью функции hideTooltip ().

var $tooltip = null;
$(function(){
    $tooltip = $("input[type='text']").tooltip({
        // place tooltip on the right edge
        position: "center right",
        // a little tweaking of the position
        offset: [-2, 10],
        // use the built-in fadeIn/fadeOut effect
        effect: "fade",
        // custom opacity setting
        opacity: 0.6
    });
    $("#close").click(function(){
        hideTooltip();
    });
});
function hideTooltip()
{
    if($tooltip)
    {
        $tooltip.each(function(index){
            var $this = $(this).data('tooltip');
            if($this.isShown(true))
                $this.hide();
        });
    }
}
2 голосов
/ 29 декабря 2014

jqueryUi всплывающая подсказка имеет проблему с ipad, подсказка не исчезнет, ​​если мы щелкнем где-нибудь на странице, поэтому это простое решение сработало для меня и работает на устройствах ios 6, ios 7, ios 8

 $("#selector ").tooltip( "close" );

Вы можете использовать эти методы

1 голос
/ 23 июня 2015

Я думаю, что самый простой способ - вызвать эту команду:

$("#your-element").tooltip('destroy');

Короче говоря, она удаляет текущую функциональность всплывающей подсказки и #your-element возвращается в нормальное состояние.

Этоофициальный документ: https://api.jqueryui.com/tooltip/#method-destroy

1 голос
/ 22 апреля 2012

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

var t = $('#object_to_remove').data('tooltip');
if(t) t = t.getTip();
if(t) t.remove();
$('#object_to_remove').remove();

Элементы if (t) необходимы для того, чтобы не возникало ошибок, если всплывающая подсказка либо не присоединена, либо еще не была вызвана.

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

1 голос
/ 15 апреля 2011

удалить элемент всплывающей подсказки вместе со ссылкой.

$('.remove-player-large a').click(function() {
  $('.tooltip').remove();//remove the tool tip element
});

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

0 голосов
/ 10 апреля 2015

Несколько похожая проблема jqueryui всплывающих подсказок и iPad имеет элегантный ответ здесь

0 голосов
/ 14 апреля 2011

Непосредственно перед удалением этого человека отправьте ему событие .mouseout () . Это вызовет нормальное поведение мышки в подсказке и должно скрыть подсказку (если она действительно исчезнет при мышлении)

...