【发布时间】:2011-11-01 20:52:19
【问题描述】:
我似乎无法找到在 IE 7 中导致此错误的原因在 Chrome 中有效。在 Internet Explorer 中加载我的页面时,它会弹出错误“停止运行此脚本消息”。有什么想法吗?
$(document).ready(function() {
var icons = {
header: "ui-icon-circle-plus",
headerSelected: "ui-icon-circle-minus"
};
$('.ui-accordion').accordion({
active: false,
collapsible: true,
autoHeight: false,
icons: icons
});
$("a").click(function (event) {
event.stopPropagation();
});
$('.requirementCheckBox').click(function() {
getReq();
});
});
function getReq() {
var componentList;
var selected = $(":checkbox:checked");
if(selected.length ==0){
$('#requirements_table_wrapper').remove();
}
else {
$.each(selected , function(i, n){
if(i == 0){
componentList = n.value;
}
else{
componentList += ',' + n.value;
}
});
$.getJSON("addRequirements/GetRequirements/?componentList=" + componentList, function (data) {
$('#requirements_table_wrapper').remove();
var reqString = '<table id="requirements_table"><thead><tr><th>Requirement ID</th><th>Requirements</th><th>Reference</th></tr></thead><tbody>';
for (var i = 0; i < data.length; i++) {
reqString += '<tr><td>'+ data[i].reqID + '</td><td>' + data[i].reqText + '</td>' + '<td>' + data[i].reqReference + '</td></tr>';
}
reqString += '</tbody></table>';
$("#requirementsDiv").append(reqString);
$("#requirements_table").dataTable({
"bJQueryUI": true,
"bPaginate": false,
"bRetrieve": true,
"oLanguage": {"sSearch" : "Filter Requirements:"}
});
});
}
}
我没有立即发现任何无限循环,但也许我已经盯着它太久了。
**更新 问题似乎出在手风琴上,一旦它被删除,IE 就会正常加载页面。
【问题讨论】:
-
data.length 的值是多少?还是可变的?
-
尝试
$("#requirementsDiv").html(reqString);而不是.append。我推荐使用这个,特别是当 div 在追加之前为空时。 -
我问了一个类似的问题,我也在使用手风琴,所以stackoverflow.com/questions/6006406/…如果有帮助!
-
@RobW 这可能是答案,请考虑将其发布为答案。
append必须创建许多文档片段,这可能需要一段时间。 -
@meder ,看来手风琴是问题所在。你最后做了什么,因为我没有看到你在你的帖子上选择答案。
标签: javascript jquery internet-explorer