Смотрите мое обновление внизу
Я тоже работал над этой проблемой и придумал решение, аналогичное предложенному @Gaby. Проблема с решением @ Gaby заключается в том, что он не создает qTip, пока не произошло событие mouseover. Это означает, что вы не увидите qTip при первом наведении мыши, но увидите во второй раз. Кроме того, он будет воссоздавать qTip каждый раз, когда вы наводите курсор мыши, что не совсем оптимально.
Я выбрал следующее решение:
$("li").live('mouseover', function() {
var target = $(this);
if (target.data('qtip')) { return false; }
target.qtip(...);
target.trigger('mouseover');
});
Вот что он делает:
- Устанавливает цель для элемента li
- Возвращает, если этот элемент li уже имеет qtip
- Если в li нет qtip, то к нему применяется qtip
- Снова отправляет триггер мыши, чтобы активировать qtip
Я знаю, что это немного глупо, но, похоже, работает. Также обратите внимание, что версия qTip 2.0 должна поддерживать live () в качестве опции. Насколько я могу судить, текущая ветка разработки пока не поддерживает ее.
UPDATE:
Вот правильный способ сделать это, прямо от самого разработчика qtip на форумах:
$('selector').live('mouseover', function() {
$(this).qtip({
overwrite: false, // Make sure another tooltip can't overwrite this one without it being explicitly destroyed
content: 'I\'m a live qTip', // comma was missing here
show: {
ready: true // Needed to make it show on first mouseover event
}
});
})
Так что сначала убедитесь, что вы не воссоздаете новые qtips каждый раз при наведении курсора на «overwrite: false». Затем он делает показ qtip при первом наведении мыши с помощью «show: {ready: true}».