tipTip работает при 'втором' наведении после запроса ajax с использованием tiptip и jquery on () - PullRequest
1 голос
/ 05 декабря 2011

Я использую плагин WordPress + AJAX календарь для будущих публикаций (http://wordpress.org/extend/plugins/wordpress-plugin-ajax-calendar-with-future-posts/) + плагины Tiptip http://code.drewwilson.com/entry/tiptip-jquery-plugin. Мне удалось заставить их работать вместе, хотя подсказка работает только на втором наведении - Я имею в виду, когда вы впервые не видите элемент подсказки после ajax-запроса. Я использую календарь в качестве виджета на моей домашней странице.

Так я активирую подсказку.

jQuery(document).ready(function( $ ) {

    $("#wp-calendar").on("hover"," td a", function(){ $(this).tipTip(); });
...
});

отлично работает при начальной загрузке, если я использую

$("#wp-calendar td a").tipTip();

, но он исчезает после запроса ajax.

Вопрос в том, как заставить подсказку показывать способ, которым он должен показываться: при первом наведении, наведении мыши, наведении мыши и т. Д. Я перепробовал все эти события. АКА: Как мне заставить первый кусок кода работать должным образом.

Я пытался найти ответ, который вывел меня на сцену, где я сейчас нахожусь. Это выше моего «навыка сейчас», чтобы пройти это.

1 Ответ

2 голосов
/ 05 декабря 2011

Что ж, я думаю, что если вы позвоните AJAX и воссоздаете элементы, вы должны повторно инициализировать плагин.Я думаю, вы должны поместить этот вызов

 $("#wp-calendar td a").tipTip();

в обработчик успеха вызова ajax ПОСЛЕ добавления новых элементов.Если вы не можете контролировать вызов ajax, попробуйте использовать ajaxComplete ()

$('body').ajaxComplete(function(e, xhr, settings){
     $("#wp-calendar td a").tipTip();
});

Если вы сделаете это, я думаю, вы можете убрать этот вызов:

$("#wp-calendar").on("hover"," td a", function(){ $(this).tipTip(); });

, потому что у вас уже естьповторно применил плагин.

...