jQuery加载和回调问题

时间:2012-02-29 14:08:40

标签: internet-explorer jquery

我有一个

<div id="config-wrapper">
    <button id="submit-success">Continue</button>
</div>

在我加载页面的 .js 中,我在 document.ready 中有以下内容:

$("#submit-success").live("click", function(e) {
    e.preventDefault();
    $.get("../html/configurador/houseDetails.html", function(data) {
        $('#config-wrapper').html(data);      
        reloadTexts();
    });
});

我的 reloadTexts()函数使用 class =“trad”遍历所有DOM元素,并根据 lang.es.json中的内容附加翻译文件 它看起来像这样:

function reloadTexts(){ 

    alert("I'm reloading...");  //It popups, meaning function gets called

    $(".trad").each(function (i) {      
        var key = jQuery(this).attr("key");
        var value = _(key)
        jQuery(this).html(value);
    }); 
}

因此,回调方法( reloadTexts())肯定会被调用,但似乎.each函数无法遍历它收到的DOM ...

当然,这个问题存在于IE(第8版)中,而不存在于Chrome和Firefox中!

在IE中可能导致此问题的任何想法?

提前致谢...

1 个答案:

答案 0 :(得分:1)

我不知道在哪里写这个,所以我会回答我自己的问题...... IE中的问题是我的html无效......当我试图解决它时,我在其他地方读到了这个问题,但看着我的代码,我看到所有标签都被正确关闭,嵌套等等。

似乎我使用&lt;图例&GT; &LT; / legend&gt; 未包含在&lt;形式&GT;&LT; / form&gt; 和 这足以让IE失败......

我觉得奇怪的是,jQuery框架没有例外,说它不是有效的HTML或者内容存在某种问题...

无论如何,在加载(“resource.html”,function(){//回调代码}) $。get(...)的IE回调中如果html内容无效,函数将无法遍历和更新DOM。我不打赌该代码需要100%有效,但如果它是你不应该有任何问题... 希望这有助于某人