2013-03-08 4 views
0

Я использую два плагина jQuery: easytabs и prettyPhoto. Я хочу использовать плагин prettyPhoto для изображений на (1) статической странице и (2) на изображениях, которые загружаются через ajax плагином easytabs.Вызов плагина jQuery один раз для статического содержимого и содержимого, загруженного через ajax

Вот что я делаю прямо сейчас (обратите внимание, что это работает просто отлично, но мне интересно, если есть более эффективный способ сделать это):

$(document).ready(function(){ 
    $("a[rel^='prettyPhoto']").prettyPhoto(); // Calling prettyPhoto for the first time (for images on the static page) 

    $('#portfolio-tabs').easytabs(); 
    $('#portfolio-tabs').bind('easytabs:ajax:complete', function() { 
     $("a[rel^='prettyPhoto']").prettyPhoto(); // Calling this again for it to work on images loaded via ajax 
    ) 
}); 
+0

что проблема производительности вы столкнулись, что требует более эффективного подхода? – 2013-03-08 17:58:15

+0

Это нормально, было бы лучше, если бы был более быстрый селектор для якорей, но только если есть проблема с производительностью. – kidwon

+0

На самом деле, я не заметил никаких проблем с производительностью. Просто неправильно создавать экземпляр плагина дважды ... Так что мой код в порядке? – transbetacism

ответ

0

Я считаю, загруженные easytabs содержимое визуализируются с в portfolio-tabs затем изменить АЯКС обратный вызов

var tabs = $('#portfolio-tabs').bind('easytabs:ajax:complete', function() { 
    $("a[rel^='prettyPhoto']", tabs).prettyPhoto(); // Calling this again for it to work on images loaded via ajax 
) 
+0

Это создаст экземпляр плагина prettyPhoto после того, как запрос ajax easytabs будет завершен, не так ли? Дело в том, что мне нужно prettyPhoto до того, как был запущен запрос ajax. – transbetacism

+0

вам нужно сохранить '$ (" a [rel^= 'prettyPhoto'] "). PrettyPhoto(); 'перед' $ ('# portfolio-tabs'). easytabs(); 'также –