IE不会为.load()元素加载css& js不起作用

时间:2011-09-07 16:31:41

标签: jquery css internet-explorer

我使用此函数加载带有.load()的内容:

$(document).ready(function(){
    $("nav a").click(function () {  
    $("#main-content").load($(this).attr("href") + " #content > *");
    return false;
   });
});

index.php包含样式和脚本。

加载的内容只包含div中没有​​头部,正文或样式的内容。

问题:

- IE8不加载样式&此功能不起作用:

$(document).ready(function() {

   if ($(window).width() < 630) {
        $('aside').each(
            function(){
                $(this).parents('article').find('h2').after(this);
                    }
        );  
        }

   if ($(window).width() > 630) {
        $('aside').each(
            function(){
                $(this).parents('section').after(this);
                    }
        );  
        }
});


$(window).bind('resize', function(){

   if ($(window).width() < 630) {
        $('aside').each(
            function(){
                $(this).parents('article').find('h2').after(this);
                    }
        );  
        }

   if ($(window).width() > 630) {
        $('aside').each(
            function(){
                $(this).parents('section').after(this);
                    }
        );  
        }

}); 

我已经尝试像其他脚本一样修复它:

$(document).ajaxComplete(function(){ });

..但它不起作用。

任何帮助都非常有用。

3 个答案:

答案 0 :(得分:0)

使用<link>显式加载CSS,并使用$.getScript()加载并执行javaScript文件。

答案 1 :(得分:0)

aside是一类吗?

然后你必须使用
$('.aside').each(而非 $('aside').each(

articlesection同样如此。

答案 2 :(得分:0)

我想出了问题:这是因为我在页面上使用的HTML5元素。使用HTML5shiv一般来说,让它们在页面上运行没有问题,但是IE不会通过.load()在加载的内容上捕获它们。

这是一个关于此问题的主题。

How to "enable" HTML5 elements in IE 8 that were inserted by AJAX call?

innershiv已经是一个解决方案:

http://css-tricks.com/6869-html5-innershiv/

编辑:但仍然存在命名函数的问题。