Инструменты jQuery -> Метод уничтожения всплывающей подсказки?

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

Каждая строка таблицы имеет возможность вставить строку выше и ниже нее.

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

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

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

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

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

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

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

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

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


person redcloud1800    schedule 02.02.2011    source источник
comment
Можете ли вы объяснить, что вы подразумеваете под автоматическим переходом к объекту, из которого он был сделан, когда вы пытаетесь отменить привязку всплывающей подсказки?   -  person Dan Short    schedule 08.02.2011
comment
Можете ли вы опубликовать код, который вы используете для вызова всплывающих подсказок, и код, который вы использовали, чтобы попытаться их отвязать?   -  person themerlinproject    schedule 01.03.2011


Ответы (4)


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

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

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

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

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

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

person Tom Halladay    schedule 16.02.2012

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

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

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

function destroyTooltips($targets) { 
    $targets.removeData('tooltip').unbind().next('div.tooltip').remove();
}
person Mark    schedule 14.02.2013

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

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

где-то в:

$.extend(self, {
...

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

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

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

Это должно помочь

K

person kwicher    schedule 08.05.2011

Может быть, уже слишком поздно... ;-)
Но здесь вы можете найти все методы 'tooltip': http://www.w3schools.com/bootstrap/bootstrap_ref_js_tooltip.asp

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

person Pedro Ferreira    schedule 24.03.2016