Jquery toolTip и метод live()
Здравствуйте, уважаемые. Есть плагин jquery tooltip.
Он используется так: Код:
$('img').tooltip();Делаю так: Код:
$('img').live('mouseover', function() { |
при использовании .on() проблема остается
На подгруженные через AJAX элементы использую плагин jquery tooltip ( http://docs.jquery.com/Plugins/Tooltip ).
подключаю так
$('tipsed').on('mouseover', function() {
$('tipsed').tooltip();
}
проблема точно такая же! |
Анатолий Саратовцев,AK666,
При подгрузке - unbindite все подсказки и выставляйте их события по-новой
$('img').di('mouseover')
$('img').live('mouseover', function() {
$('img').tooltip();
}
$('tipsed').unbind('mouseover');
$('tipsed').on('mouseover', function() {
$('tipsed').tooltip();
}
|
не выходит каменный цветок :(
Спасибо за Ваш ответ
$('tipsed').unbind('mouseover');
$('tipsed').on('mouseover', function() {
$('tipsed').tooltip();
}
я так подозреваю, что
$('tipsed').tooltip();
убирает значения title в только ему известное место а
$('tipsed').unbind('mouseover');
не возвращает :( подсказанный Вами код я поставил в success метода ajax |
AK666,
А вы пробуйте таким макаром - по аякс - кликать программно кнопку(которая неизменна на протяжении загрузок) и по событию её клика - снимать и ставить событие на 'tipsed' |
я что на самом деле сказать хотел :)
насколько я понял для jquery tooltip ( http://docs.jquery.com/Plugins/Tooltip )
нельзя использовать ни .live() ни .on() когда я в консоли DeveloperTools хрома (после загрузки странички со всеми динамическими элементами) даю просто команду $('tipsed').tooltip(); то оно работает для всех текущих элементов (а при этом все теги title "исчезают"), и, естественно, не работает для последующе загруженных. (данные добавляются раз в 10 секунд) вопрос в следующем: как заставить этот tooltip работать с динамическим контентом или подскажите любой другой который так умеет. я ещё пробовал делать так: <span onmouseover="_showTooltip(this,'test hint')">Test</span>
function showTooltip(tag,text){
$(tag).tooltip({
track: true,
delay: 0,
showURL: false,
bodyHandler: function() {
return text;
}
});
};
но тут опять возникает проблема: при первом наведении на текст мыши хинт НЕ показывается, при последующих - показывается БЕЗ проблем. Если подскажете как в процедуре сразу сделать вызов функции показа - то это тоже очень сильно поможет :) |
AK666,
Ну есть jquery.tipsy.min.js Но он даёт чисто титулы на черном фоне - хотя можно им придать собственный, дополнительный класс и вставить внутрь своё, нужное |
Я сделал по дурацкаму:)
В документации есть метод: method-destroy По этому при загрузке можно сделать так например: // Удалить все подсказки $( ".selector" ).tooltip( "destroy" ); А потом назначить все заново: $( ".selector" ).tooltip(); Может у кого получилось сделать это по-нормальному? |
Где то нашел пример, немного переделал под себя. Все работает без задержек, с первого раза.
/* Всплывающая подсказка
* Для работы нужен заполненный атрибут hint = "[Подсказка]"
* и <div id="tooltip">
------------------------------------------------------*/
$("[hint]").mousemove(function( eventObject ){
$("#tooltip").text($(this).attr("hint"))
.css({"top" : eventObject.pageY + 5, "left" : eventObject.pageX + 5})
.show();
})
.mouseout(function() {
$("#tooltip").hide()
.text("")
.css({"top" : 0, "left" : 0});
});
п.с. код требует некоторой доработки, в плане если подсказка находится возле края экрана то получается не очень красиво. |
| Часовой пояс GMT +3, время: 11:34. |