2011-01-23 4 views
0

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

Возможно, это более понятно :): У меня есть CONTNET DIV, которая является динамической загрузкой. Если я нажму ссылку в МЕНЮ ... Новое содержимое загружается правильно. В новом контенте у меня есть подменю, но если я нажимаю ссылки, все сайты перезагружаются ... Что я могу сделать, если хочу загрузить только «контент 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/

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

У любого есть n идея?

+0

, пожалуйста, исправьте свой английский - трудно понять ваш вопрос. – shybovycha

+3

@shybovycha, * oh *, * ирония * этого комментария ... =) –

+0

@ Давид Томас, это 01:20 утра на мои часы, так что я немного устал ... Не могли бы вы объяснить свою фразу, пожалуйста? =) – shybovycha

ответ

0

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

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

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

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

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

0

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

$('.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; 

    });