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, время: 23:04. |