Инструменты Jquery — всплывающая подсказка для Ajax

У меня есть рабочая версия всплывающей подсказки (инструменты jQuery — http://flowplayer.org/tools/demos/tooltip/index.html),

jQuery(document).ready(function() { 
jQuery('.more_info').each(function(){
   jQuery(this).tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
        bottom: { 
        direction: 'down', 
        bounce: true 
    } 
    }); 
});   

});

после загрузки ajax всплывающие подсказки больше не работают, потому что скрипт уже загружен, я попробовал решение с форума http://flowplayer.org/tools/forum/30/37281 , но не работает или реализован неправильно

вот код:

jQuery(document).ready(function() { 
jQuery('.more_info').each(function(){
   jQuery(this).not('.tt_init').tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
        bottom: { 
        direction: 'down', 
        bounce: true 
        } 
    });
    jQuery(this).not('.tt_init').addClass('tt_init'); 
});   

});

и ничего... я что-то не так делаю, спасибо за помощь ;), извините за мой плохой английский


person mIRU    schedule 13.01.2011    source источник
comment
Вам не нужен each с плагинами jquery. Это перебор.   -  person Josiah Ruddell    schedule 13.01.2011
comment
Я новичок в Jquery, и как лучше   -  person mIRU    schedule 13.01.2011


Ответы (2)


То же решение, что и следующее:

livequery не работает с группами

Используйте плагин livequery. Если всплывающая подсказка действительна для всех ваших страниц, ее следует обновлять каждый раз. Это место, где приходит livequery.

Также проверьте эту ссылку:

Перепривязка JQuery slimbox после обратного вызова ajax

person Marnix    schedule 13.01.2011

Если проблема связана с динамическим контентом, попробуйте использовать live jQuery API.

jQuery('.more_info').live('mouseover', function(){
    // may need to check here if it already has a tooltip (depending on plugin)
    jQuery(this).tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
           bottom: { 
           direction: 'down', 
           bounce: true 
       } 
  }); 
});

Другое решение — вручную активировать всплывающие подсказки для содержимого ajax. что-то типа:

$('#result').load('ajax/test.html', function() {
  $(this).find('.more_info').tooltip({*/...*/});
});

Или вы можете сделать это для всех запросов ajax, используя глобальные ответчики.

person Josiah Ruddell    schedule 13.01.2011
comment
если бы это было наведение мыши, это было бы так, но live('tooltip') нет. Таким образом, livequery будет решением. - person Marnix; 13.01.2011
comment
Не уверен, что вы имеете в виду - всплывающая подсказка отображается при наведении курсора, поэтому live([tooltip selector]) -> activate tooltip должен помочь без использования livequery. Это довольно тяжелый плагин. - person Josiah Ruddell; 13.01.2011