【问题标题】:jQuery dynamic loading contentsjQuery动态加载内容
【发布时间】:2011-06-14 05:07:21
【问题描述】:

我遇到了动态加载内容的问题。我有一个菜单,在 div 点击后隐藏,他们正在加载新内容并且他正在移动..它工作正常,但是在新内容中我有子菜单,它想对菜单使用相同的效果,但是是出现问题和链接导致立即通过

也许它更容易理解:):我有 CONTNET DIV,这是动态加载如果我单击 MENU 中的链接...新内容正在正确加载。在新内容中,我有子菜单,但如果我点击链接,所有网站都会重新加载...如果我只想加载“内容 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..

有人有想法吗?

【问题讨论】:

  • 请改正你的英语 - 很难理解你的问题。
  • @shybovycha,oh,那条评论的讽刺... =)
  • @David Thomas,我的时间是上午 01:20,所以我有点累了...请您解释一下您的说法吗? =)
  • 也许更容易理解:):我有CONTNET DIV,这是动态加载如果我点击菜单中的链接...新内容正在正确加载。在新内容中,我有子菜单,但如果我点击链接,所有网站都会重新加载...如果我只想加载“内容 div”,我可以做什么..
  • @shybovchya,我指的是您要求 OP 更正他的英语,在评论中 1 您以小写字母开头的句子 2 小写拼写为“英语”(英语是专有名词,因此应大写),3 拼写错误“理解”。 ...我只是想保持幽默感,虽然现在把它拼出来感觉有点意思,所以我对此表示诚挚的歉意。我同意你的观点,但这个问题还不清楚。

标签: jquery ajax dynamic-content


【解决方案1】:

根据我对您的查询的理解,这可能会做到。

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

    });

【讨论】:

    【解决方案2】:

    您的母语是什么?我认为在里面回答会更容易。

    对吗?您在主菜单中单击任何项​​目并使用 AJAX 加载到页面新菜单,但新菜单中的项目不调用 AJAX 请求?

    如果是这样,您需要根据需要将 AJAX 函数调用应用于新菜单、其项目或孔加载的内容。

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

    我觉得你的代码太复杂了,需要一些改进。

    【讨论】:

      猜你喜欢
      • 2016-12-15
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多