Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2014, 09:25
Интересующийся
Отправить личное сообщение для Анатолий Саратовцев Посмотреть профиль Найти все сообщения от Анатолий Саратовцев
 
Регистрация: 28.06.2012
Сообщений: 24

tooltip на подгружаемых елементах
Всем доброго времени суток
У меня такая задача возникла, если кто знает как это решить, помогите.
Вот в чем суть. Есть виджет tooltip ( http://jqueryui.com/tooltip/ ), но он не срабатывает на елементах, которые были подгружены скриптами уже после основной загрузки страницы.
Делал так:
Код:
$(document).on('hover','.tooltip',function(){
    $('.tooltip').tooltip();
});
и так:
Код:
$(document).on('hover','.tooltip',function(){
    $(this).tooltip();
});
но это конечно неправильно и неработает естественно, просто другого ничего не могу придумать, возможно нужно редактировать код этого виджета, но я туда глянул и тоже не смог разобраться.

Вообщем одна надежда на вас
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2014, 10:01
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Код виджета тут ни при чем. После загрузки новых элементов нужно навесить на них тултип:
html код:
<div>
<a href="/somepath1">link1></a>
<a href="/somepath2">link2></a>
</div>


ajax запрос
$.ajax({
url:'your url',
data : {key1:value1,key2:value2,.....},
success:function(data) {// коллбэк
//допустим тут пришел наш html
var newdata = $(data).find('a').tooltip(); //вешаем тултип
$('body').append(newdata );//вставляем в боди(или куда хочешь)
}
})
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2014, 10:34
Интересующийся
Отправить личное сообщение для Анатолий Саратовцев Посмотреть профиль Найти все сообщения от Анатолий Саратовцев
 
Регистрация: 28.06.2012
Сообщений: 24

Во, а ларчик просто открывался, спасибо большое.
Только я сделал так:
.....
success: function(data){
$('.tooltip').tooltip();
}
что сути конечно не меняет. Большое спасибо за помощь KRASOVSKY
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2014, 11:53
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Анатолий Саратовцев
что сути конечно не меняет
меняет. Вы навешиваете тултип заново даже на те элементы, на которых он уже навешен. Тут зависит от реализации плагина - возможны глюки с двойной инициализацией. А код krasovsky в этом плане более безопасный
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2014, 12:10
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

Сообщение от krasovsky Посмотреть сообщение
Код виджета тут ни при чем. После загрузки новых элементов нужно навесить на них тултип:
html код:
<div>
<a href="/somepath1">link1></a>
<a href="/somepath2">link2></a>
</div>


ajax запрос
$.ajax({
url:'your url',
data : {key1:value1,key2:value2,.....},
success:function(data) {// коллбэк
//допустим тут пришел наш html
var newdata = $(data).find('a').tooltip(); //вешаем тултип
$('body').append(newdata );//вставляем в боди(или куда хочешь)
}
})
слушайте, а данный обработчик сработает? ведь элементов еще нет в документе
Ответить с цитированием
  #6 (permalink)  
Старый 06.05.2014, 12:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от nice_try
слушайте, а данный обработчик сработает? ведь элементов еще нет в документе
да сработает
<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>tooltip demo</title>

  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>

  <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

</head>

<body>



<p>
  <textarea id="test" name="">
  <div>
<a href="/somepath1" title="help">link1></a>
<a href="/somepath2" title="help">link2></a>
</div>

  </textarea>
  <a href="#" title="Anchor description">Anchor text</a>



</p>

<script>
$('a').tooltip(); //  title="Anchor description">
var data = $('textarea').val()
var newdata = $(data).find('a').tooltip(); //вешаем тултип title="help"
$('body').append(newdata);//вставляем в боди(или куда хочешь)



</script>



</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2014, 13:53
Интересующийся
Отправить личное сообщение для Анатолий Саратовцев Посмотреть профиль Найти все сообщения от Анатолий Саратовцев
 
Регистрация: 28.06.2012
Сообщений: 24

ВЕТЕРАН, спасибо что объяснили, теперь понятно, во-первых скрипту ненужно обходить опять весь документ, во-вторых не возникнут возможные проблемы с повторной инициализацией, ну короче понятно, нужно обработать только полученный кусок кода.
Еще хочу поделиться с одним нюансом, с которым я столкнулся.
Допустим аякс запрос возвращает данные в таком виде:
Код:
<li>
    <a href="ссылка">
        <img src="картинка" alt="Это всплывающая инфа" class="tooltip" />
    </a>
</li>
тогда код
Код:
var newdata = $(data).find('.tooltip').tooltip();
вернет только теги img.
Я сделал так:
Код:
var newdata = $(data).tooltip();
Ответить с цитированием
  #8 (permalink)  
Старый 06.05.2014, 14:00
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Тебе тултип нужно вешать именно туда куда нужно а не на контейнер в котором лежат имги.
Попробуй так
var newdata = $(data);// вот вся дата
newdata.find('.tooltip').tooltip();// ищем в ней нужные элементы (имг) и ставим тултип
$('body').append(newdata);
Ответить с цитированием
  #9 (permalink)  
Старый 06.05.2014, 14:20
Интересующийся
Отправить личное сообщение для Анатолий Саратовцев Посмотреть профиль Найти все сообщения от Анатолий Саратовцев
 
Регистрация: 28.06.2012
Сообщений: 24

Во, теперь точное попадание, сделал, все работает. Большое спасибо, KRASOVSKY
Ответить с цитированием
  #10 (permalink)  
Старый 06.05.2014, 14:32
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Позязя
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать tooltip без jQuery CrossFire Элементы интерфейса 2 18.11.2013 02:29
Реализация сложного Tooltip IvanBond Работа 3 22.08.2013 14:34
Не срабатывает UI Tooltip Telnet jQuery 4 29.12.2012 11:34
Конфликт с TOOLTIP и jquery.validate qari jQuery 1 21.01.2012 23:33
Помогите настроить Ajax tooltip Jeckerson AJAX и COMET 1 14.08.2009 16:31