JQuery динамическая загрузка содержимого - PullRequest
0 голосов
/ 24 января 2011

У меня проблема с динамической загрузкой содержимого. У меня есть меню, в котором после нажатия кнопки div скрывается, они загружают новое содержимое, а он перемещается ... оно работает правильно, однако в новом содержимом у меня есть подменю, которое хотел бы использовать тот же эффект, что и для меню, однако Возникающая проблема и ссылка вызывают немедленное прохождение

Может быть, это более понятно :): У меня есть CONTNET DIV, который динамически загружается. Если я нажимаю ссылку в МЕНЮ ... Новый контент загружается правильно. В новом контенте у меня есть подменю, но если я нажимаю ссылки там, весь сайт перезагружается ... Что я могу сделать, если я хочу загружать только 'content div' ..

Что не так в коде?

 $(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').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-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent())
        }
        function showNewContent() {
            $('#content').show('normal',hideLoader());
        }
        function hideLoader() {
            $('#load').fadeOut('normal');
        }
        return false;

    });

});

Я пытался воспользоваться твоим советом, но это не сработало ..

Я сделал пример страницы ..

http://zaciszepuck.pl/site/

Вы можете видеть, что если вы нажмете на меню, все в порядке, но если вы собираетесь щелкнуть подменю в «Приветственном контенте», все сайты будут перезагружены, но если вы нажмете снова, будет загружен только Content Div. *

У кого-нибудь есть идея?

Ответы [ 2 ]

0 голосов
/ 24 января 2011

Из того, что я мог понять по вашему запросу, это может сделать это.

$('.nav li a, #content a').live('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-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent())
        }
        function showNewContent() {
            $('#content').show('normal',hideLoader());
        }
        function hideLoader() {
            $('#load').fadeOut('normal');
        }
        return false;

    });
0 голосов
/ 24 января 2011

Какой ваш родной язык?Я думаю, что было бы легче ответить на него.

Это правильно?Вы щелкаете в главном меню любой элемент и загружаете на страницу новое меню, используя AJAX, но элементы в новом меню не вызывают запрос AJAX?

Если это так, вам нужно применить вызов функции AJAX кновое меню, его элементы или загруженный контент, как вам нравится.

$(".nav li a").click(function funcName() {
    ...
    $("#content").load(toLoad, function (){
        showNewContent();
        $(".nav li a").click(funcName);/*or other submenu selector*/
    });
    ...
});

Я думаю, что ваш код слишком сложен, он нуждается в некоторых улучшениях.

...