javascript не работает в динамическом содержимом ajax

#ajax #jquery

#ajax #jquery

Вопрос:

Я пытаюсь использовать http://net.tutsplus.com/tutorials/javascript-ajax/how-to-load-in-and-animate-content-with-jquery / и, изменив его самостоятельно, я добавил fancybox и tinyscrollbar, которые сначала работают, однако после переключения между некоторыми страницами они больше не работают. Я пытался найти свой ответ в комментариях к странице руководства, я использовал .live(), но он швов, он не работает, и я не могу найти решение, слышу мой код:

 $(document).ready(function() {     
    var hash = window.location.hash.substr(1);
    var href = $('#nav li a').each(function(){
        var href = $(this).attr('href');
        if(hash==href.substr(0,href.length-5)){
            var toLoad = hash '.html #content';
            $('#content').load(toLoad)
        }                                           
    });
    $('#nav li a').live ('click', function(){                             
        var toLoad = $(this).attr('href') ' #content';
        $('#content').slideToggle('fast',loadContent);
        $('#load').remove();
        $('#wrapper').append('<span id="load">LOADING...</span>');
        $('#load').fadeIn(500);
        window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent())
        }
        function showNewContent() {
            $('#content').show(500,hideLoader());
        }
        function hideLoader() {
            $('#load').fadeOut(500);
        }
        return false;   
    });


$("#scrollbar1").tinyscrollbar();           
$("a#example1").fancybox();

});
  

спасибо,
Эндрю

Ответ №1:

Трудно понять, что вы пытаетесь сделать, когда нет полной страницы для просмотра. Но я думаю, что проблема в том, что при загрузке нового контента вам следует соответствующим образом обновить полосу прокрутки и fancybox.

Для tinyscrollbar вы можете использовать метод обновления.

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

Вы могли бы попытаться поместить его в обратный вызов вашего события загрузки.

$(«#scrollbar1»).tinyscrollbar_update();

Вы могли бы попытаться поместить это правило в конец вашей функции hideLoader или функции showNewContent.

Комментарии:

1. Я ценю ваш ответ, но не могли бы вы сообщить мне, что еще вы ищете и как я могу использовать метод обновления?