前些时候,测试项目发现了一个奇葩的问题,我自己写的一个js方法
function showAlarmInfomation(flag){
$("#deviceAlarmInfo").load("deviceAlarmInfo.jsp",function(){
switch(flag){
case 'Warning':
if(patrn.exec($("#alarmWarningNum").html())==0){
alert("设备暂无警报日志");
$("#alarmWarningNum").click(function(){showAlarmInfomation('Warning');});
$("#alarmErrorNum").click(function(){showAlarmInfomation('Error');});
}else{
$("#hiddendevicealarmtype").val(flag);
$("#hiddendevicealarmdevicetype").val("StorageServer");
dealWithPopUpAlarmWindow(flag,patrn.exec($("#alarm"+flag+"Num").html()));
}
break;
case 'Error':
if(patrn.exec($("#alarmWarningNum").html())==0){
alert("设备暂无故障日志");
$("#alarmWarningNum").click(function(){showAlarmInfomation('Warning');});
$("#alarmErrorNum").click(function(){showAlarmInfomation('Error');});
}else{
$("#hiddendevicealarmtype").val(flag);
$("#hiddendevicealarmdevicetype").val("StorageServer");
dealWithPopUpAlarmWindow(flag,patrn.exec($("#alarm"+flag+"Num").html()));
}
break;
}
});
}
这个是一个图片点击事件调用的函数,在别的浏览器中都能正常的展现功能,但是就是在ie6,7中这个方法点击只能执行一次,第二次就不能执行,或者说压根就没有进入这个方法体,我是百思不得其解,不至于呀,你都已经能执行成功了,为什么第二次不行?然后我就开始定位找问题,发现居然是这个load方法导致了,我就随便换了一个jquery类似的参数结构的方法get,居然就能执行了,你说奇怪不?查询外加询问一些牛哥,基本都不能解释原因或者说能试的方法都不能成功解决,没办法,退而求其次,换了一个解决的思路。下面就是换了一个思路的解决办法,但是上面问题的原因还是未定位到。(如果有哪位哥们遇到过,请留言一下处理的办法,万分感谢啦):
function showAlarmInfomation(flag){
var messageNum=patrn.exec($("#alarm"+flag+"Num").html());
$.get(*/
"<%=request.getContextPath()%>/jsp/deviceAlarmInfo.jsp",//这个就是要加载的页面,url的地址一定要写正确
*function(data){
$('#deviceAlarmInfo').html(data);
switch(flag){
case 'Warning':
if(messageNum==0){
$("#alarmWarningNum").click(function(){showAlarmInfomation('Warning');});
$("#alarmErrorNum").click(function(){showAlarmInfomation('Error');});
alert("设备暂无警报日志");
}else{
$("#hiddendevicealarmtype").val(flag);
$("#hiddendevicealarmdevicetype").val("StorageServer");
dealWithPopUpAlarmWindow(flag,messageNum);
}
break;
case 'Error':
if(messageNum==0){
$("#alarmWarningNum").click(function(){showAlarmInfomation('Warning');});
$("#alarmErrorNum").click(function(){showAlarmInfomation('Error');});
alert("设备暂无故障日志");
}else{
$("#hiddendevicealarmtype").val(flag);
$("#hiddendevicealarmdevicetype").val("StorageServer");
dealWithPopUpAlarmWindow(flag,messageNum);
}
break;
}
});
}
这个就是我的解决办法,代码可能有点瑕疵,这个是未经优化的。给大家一个思路,如果有谁知道上面的load在ie7的 中的问题的,求赐教啊。。