IE不会将css样式应用于动态添加的div

时间:2011-02-28 15:49:11

标签: javascript jquery html html5 internet-explorer-8

我在IE8上遇到这个奇怪的问题。我的应用程序通过ajax获取div并将其附加到HTML。

$('#formPromocao').submit(function () {
        persistPageIndex();
        var postData = $(this).serialize();
        $.post($(this).attr('action'), postData, function (data) {
            $('#lista').empty();
            $('#lista').append(data);
            prepareNewForm();
        });
        return false;
    });

这适用于除IE8之外的所有浏览器,附加的HTML没有被浏览器样式化,我无法弄清楚原因。

有没有人在此之前偶然发现了这个问题?任何帮助将不胜感激。

编辑:

我发现了问题:HTML人员在应用程序中使用HTML5,在IE8上有一个处理HTML5的脚本:http://html5shiv.googlecode.com/

我必须找到一种方法,在HTML更新时再次运行此脚本。我能安然做到吗?

3 个答案:

答案 0 :(得分:2)

在附加到文档之前使用shiv功能:

html = innerShiv(html, false);
$('something').append(html);

答案 1 :(得分:1)

这通常是因为您附加了无效的HTML,或者页面中已经存在无效的HTML。

答案 2 :(得分:1)

以下是我设法在IE中添加HTML5的方法。

我找到了这个惊人的脚本:http://jdbartlett.github.com/innershiv/#download然后我所要做的就是将innerShiv的结果附加到HTML:

$('#formPromocao').submit(function () {
        persistPageIndex();
        var postData = $(this).serialize();
        $.post($(this).attr('action'), postData, function (data) {
            $('#lista').empty();
            $('#lista').append(innerShiv(data));
            prepareNewForm();
        });
        return false;
    });