设置:我有一个小的jQuery / Web服务启用的html页面提供2个视图 - 让我们称之为 ViewMySubmissions 和 ViewMyPendingApprovals ,其中'ViewMySubmissions'是默认值查看负载。切换视图分别由附加到每个视图的2个按钮的.click()事件控制。
我遇到的问题是,在使用其他浏览器和IE9的兼容模式进行测试后,jQuery按预期工作 - 单击按钮后,将显示相应的数据表。但是,在IE 9中,单击 ViewMyPendingApprovals 按钮后,它会立即切换回默认视图。
我似乎无法弄清楚它有什么问题。
jQuery脚本的代码片段如下:
$(document).ready(function () {
$('#resultsArea').hide();
$('#detailsDiv').hide();
$('#approvalsDiv').hide();
// default view.
displaySubmissions($('span[id$=endUser]').text());
$('button[id$=submissionItems]').click(function () {
$('#detailsDiv').hide();
$('#approvalsDiv').hide();
$('#signOffArea').hide();
$('span[id$=myActionPane]').html('My Request History');
displaySubmissions($('span[id$=endUser]').text());
});
$('button[id$=approvalItems]').click(function () {
$('#detailsDiv').hide();
$('#approvalsDiv').hide();
$('#signOffArea').show();
$('span[id$=myActionPane]').html('My Action Items');
displayActionItems($('span[id$=endUser]').text());
});
submitForAction("signOffApproval", $('span[id$=endUser]').text(), true);
submitForAction("signOffDeny", $('span[id$=endUser]').text(), false);
});
//provides a display table of action items
function displayActionItems(approver) {
$.ajax({
type: "POST",
url: "enduserWS.asmx/ViewActionItems",
data: "{'user': '" + userCredential + "'}",
contentType: "application/json;charset=UTF-8",
dataType: "json",
success: function (msg) {
$('table[id$=summaryTable]').find('tr:gt(0)').remove();
var jsonVal = $.parseJSON(msg.d);
if (jsonVal.length < 1) {
var columnCount = $('tr[id$=summaryHeader]').children().length;
$('table[id$=summaryTable] tr:last').after('<tr><td colspan="' + columnCount + '">No items to approve and process. </td>');
$('#signOffArea').hide();
return;
}
for (var itemRecord in jsonVal) {
$('table[id$=summaryTable] tr:last').after('<tr><td id="requestId"">' + jsonVal[itemRecord]["ID"] + '</td><td>' + jsonVal[itemRecord]["Requestor"] + '</td><td>' + jsonVal[itemRecord]["RequestDate"] + '</td><td>' + jsonVal[itemRecord]["Status"] + '</td></tr>');
}
},
error: function (msg) {
$('#resultsArea').html(defaultErrorMessage);
}
});
}
displayActionItems()和 displaySubmissions()是在成功调用Web服务方法后,在表中显示类似数据的jQuery方法。
我的猜测是因为我将displaySubmissions()称为默认视图,即使部分加载HTML页面的部分,IE9也会再次调用它。
有什么想法? *注意,使用jQuery的经验有限,而且还不熟悉绑定事件。