Как добавить лайтбокс на изображение загружено извне в jquery - PullRequest
0 голосов
/ 25 июня 2010

Я загружаю изображения извне, используя функцию загрузки jQuery ... но не могу добавить лайтбокс ..

Я новичок в jquery.

var href = $('#images').attr('href');

$('#images').click(function(){
    var toLoad = $(this).attr('href')+' #content';

    $('#content').hide('fast',loadContent);
    $('#load').remove();        
    $('#wrapper').append('<span id="load">LOADING...</span>');
    $('#load').fadeIn('normal');        
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-3);    

    function loadContent() {
        $('#content').load(toLoad,'',showNewContent());

    }
    function showNewContent() {
        $('#content').show('normal',hideLoader());
    }
    function hideLoader() {
        $('#load').fadeOut('normal');
    }
    return false;
});

эта функция находится в $ (document) .ready (), и теперь мне нужно добавить функцию ниже, чтобы динамически загружаемые изображения стали частью лайтбокса.

    $('.gallery a').lightBox({txtImage: 'Design'})

То, что я делаю, это ... вызывает файл portfolio.php и берет html внутри div #content и загружает его в #content div на странице, которую просматривает пользователь.

Пожалуйста, помогите с кодом, если это возможно.

1 Ответ

1 голос
/ 25 июня 2010

Предполагается, что .gallery является потомком #content здесь. Вы бы добавили его к функции showNewContent(), например:

function loadContent() {
    $('#content').load(toLoad,'',showNewContent);

}
function showNewContent() {
    $('#content').find('.gallery a').lightBox({txtImage: 'Design'})
                 .end().show('normal',hideLoader);
}
function hideLoader() {
    $('#load').fadeOut('normal');
}

Обязательно вызовите showNewContent в качестве обратного вызова, а не showNewContent(), (без скобок!), Иначе он фактически выполняет эту функцию прямо сейчас и пытается присвоить результат для обратного вызова, а не сама функция, поэтому она не запускается после завершения анимации.

...