jquery load()复制div层而不是重新填充内容

时间:2014-03-27 12:46:12

标签: javascript jquery html css

正如标题所说,在使用jquery的加载函数的页面上遇到一些问题。

如果你单击页面上的'about'图标,它会使用jquery加载函数,这里是一个错误的演示http://goo.gl/CaQqy1

你可以通过在具有相同id的div中显示div来看到#homepage-slider的问题,因此它会复制背景。

这是代码:

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;
    });
});

2 个答案:

答案 0 :(得分:0)

我设法通过删除div图层上的id和类来找到解决此问题的方法

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

答案 1 :(得分:0)

使用unwrap()删除重复的父元素:

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

DOCUMENTATION

或者在内容中添加包装器div并加载它,例如:

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