Инструменты jQuery -> Подсказка уничтожить метод? - PullRequest
9 голосов
/ 03 февраля 2011

Я использую в таблице фреймворк jQuery Tools от Flowplayer (в частности, плагин всплывающих подсказок) в дополнение к календарю пользовательского интерфейса jQuery.

В каждую строку таблицы можно вставить строку над и под ней.

При этом я клонирую выбранный объект (события и объекты) и вставляю его непосредственно над или под.

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

Я ищу способ полностью уничтожить его из экземпляра и повторно применить его.

Я ищу что-то похожее наdatepicker('destroy') метод.

$j($editRow).find('input.date').datepicker('destroy').datepicker({dateFormat: 'mm-dd-yy', defaultDate : defaultDateStr});

Я уже пытался:

  1. , чтобы отменить привязку событий мыши и фокуса: при повторном вызове всплывающей подсказки,он автоматически переходит к объекту, из которого он был сделан.

  2. скрывает элемент DOM всплывающей подсказки, удаляет объект всплывающей подсказки из цели и повторно применяет его.Происходит то же самое, что и (1)

Можно ли самому создать метод уничтожения?

Ответы [ 5 ]

5 голосов
/ 17 февраля 2012

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

Однако я заставил это работать.ValidationFailed - это класс, который я применяю ко всем полям ввода, к которым также применяются всплывающие подсказки.

$('.validationFailed').each(function (index) {
    $(this).removeData('tooltip');
});

$('.tooltip').remove();

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

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

5 голосов
/ 15 февраля 2013

Опираясь на ваши идеи и ответ Тома, я обнаружил, что необходимы три вещи:

  1. удалить данные «всплывающей подсказки» из целевого элемента всплывающей подсказки
  2. отсоединить прослушиватели событий от целевого элемента всплывающей подсказки
  3. удалить элемент (при условии, что вы используете этот подход всплывающей подсказки, чтобы учесть произвольный HTML в вашем совете)

Итак, эта простая функция должна помочь. Просто передайте ему объект jQuery, содержащий целевые элементы подсказок, которые вы хотите уничтожить.

function destroyTooltips($targets) { 
    $targets.removeData('tooltip').unbind().next('div.tooltip').remove();
}
1 голос
/ 09 мая 2011

Если вам все еще это нужно, вы можете сделать следующее: - в файле реализации всплывающей подсказки добавьте следующую функцию

destroy: function(e) {
        tip.detach();
        }

где-то в:

$.extend(self, {
...

У меня после последней нативной функции.

Затем, когда вы хотите удалить наконечник, выстрелите:

$(.tip).data('tooltip').destroy();

Это должно сработать

K

0 голосов
/ 30 марта 2016
   if($element.data('ui-tooltip')) {//if tooltip has been initialized
       $element.tooltip('destroy');
   }
0 голосов
/ 24 марта 2016

Может быть, уже слишком поздно;та же проблема: работа с различными действиями / объектами всплывающей подсказки.

...