我有一个
<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中可能导致此问题的任何想法?
提前致谢...
答案 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%有效,但如果它是你不应该有任何问题... 希望这有助于某人