2014-03-27 83 views
0

正如标题所说,在使用jquery的加载函数的页面上有点问题。jquery load()重复div层而不是重新填充内容

,如果你点击“约”它使用jQuery的负载功能在页面上的图标,下面是怎么回事错http://goo.gl/CaQqy1

你可以看到#主页滑块由内显示一个div窃听了演示与同一个ID的div,所以它复制背景。

下面的代码:

jQuery(document).ready(function() { 
    jQuery('#nav-icons a').click(function(){     
     jQuery('#nav-icons a').removeClass("active-icon"); 
     jQuery(this).addClass("active-icon"); 

     var toLoad = jQuery(this).attr('href')+' #main-content'; 
     var toLoadSlider = jQuery(this).attr('href')+' #homepage-slider'; 

     jQuery('#main-content , #homepage-slider').hide('fast',loadContent); 
     function loadContent() { 
      jQuery('#homepage-slider').empty().load(toLoadSlider) 
      jQuery('#main-content').empty().load(toLoad,'',showNewContent()) 

     } 
     function showNewContent() { 
      jQuery('#main-content , #homepage-slider').show('normal'); 
     } 

     return false; 
    }); 
}); 
+1

只是一个侧面说明:你需要传递函数的引用不调用方法。因此,请使用'.load(toLoad,',showNewContent)' – Satpal

+3

请使用jsfiddle - 您的网站将根据答案进行修复,并且链接到您的页面将无用以理解问题的性质。 – ElmoVanKielmo

+0

不幸的是我相信要使用load(),你拉入的页面必须在同一个域中,所以我不知道如何让jsfiddle工作 – user2619611

回答

0

我设法消除对股利层

function showNewContent() { 
       jQuery('#main-content , #homepage-slider').show('normal').removeAttr('id class'); 
      } 
0

使用unwrap() id和class去除重复的父元素找到这个问题的解决方法:

function showNewContent() { 
    jQuery('#main-content , #homepage-slider').show('normal').unwrap(); 
} 

DOCUMENTATION

或者添加一个包装的div内容里面并加载,例如:

var toLoadSlider = jQuery(this).attr('href')+' #homepage-slider .wrapper';