首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

头疼了,一个ie兼容性 的有关问题

2012-12-25 
头疼了,请教各位一个ie兼容性 的问题JSP:headmeta http-equivContent-Type contenttext/html cha

头疼了,请教各位一个ie兼容性 的问题
JSP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="imgJSP.js"></script>

<title>123</title>

<link href="imgJSP.css" rel="stylesheet" type="text/css">

</head>

<body>

  <div id="imgDiv"><img id="imgImg"/></div>
  <div id="tipDiv"></div>

</body>
</html>

imgJSP.css:
#imgDiv {
position:absolute;
width:550px;
height:400px;
z-index:1;
border-width: 1px;
border-style: solid;
border-color: #0CF;
top:0px;
left:0px;
}
#tipDiv {
position:absolute;
width:550px;
height:20px;
z-index:1;
top: 400px;
left:0px;
border-width: 1px;
border-style: solid;
border-color: #0CF;
}
#imgImg {
position:absolute;
width:550px;
height:400px;
z-index:2;
top:0px;
left:0px;
}


imgJSP.js:
//存放图片
var imgsrc= new Array();
//图片数量
var imgnum=0;
//当前图片位置
var imgnow=0;
//每个浮动层的宽度
var fwidth =0;
//最后一个浮动层的宽度
var restwidth
//时间对象
var time

//示例
imgsrc[0]="img/201201.jpg";
imgsrc[1]="img/201202.jpg";
imgsrc[2]="img/201203.jpg";
imgsrc[3]="img/201204.jpg";
imgsrc[4]="img/201205.jpg";
imgsrc[5]="img/201206.jpg";
imgsrc[6]="img/201207.jpg";

jQuery(document).ready(function(){

//图片预加载
var arr = new Array();
for(var i=0; i<imgsrc.length; i++) {
arr[i] = new Image();
arr[i].src=imgsrc[i];
arr[i].onload;
}

$("#imgImg").attr("src",imgsrc[0]);

//浮动层的宽
iwidth =$("#imgDiv").width();
fwidth=parseInt(iwidth/imgsrc.length);
restwidth = iwidth-fwidth*(imgsrc.length-1);

//添加div浮动层
for(var i=0; i<imgsrc.length; i++) {
if(i<imgsrc.length-1){
html="<div id='img"+i+"' style='position:absolute; width:"+fwidth+"px; height:100%;top:0;  left:"+fwidth*i+"px;opacity:0; z-index:3'></div>"; 
}else {
html="<div id='img"+i+"' style='position:absolute; width:"+restwidth+"px; height:100%;top:0;  left:"+fwidth*i+"px;opacity:0; z-index:3'></div>"; 
}
$('#imgDiv').append(html);


if(i<imgsrc.length-1){
html2="<div id='tip"+i+"' style='position:absolute; width:"+fwidth+"px; height:100%;top:0;  left:"+fwidth*i+"px; border-left-width:1px;border-left-style: solid;border-left-color: #0CF;z-index:3'></div>"; 
}else{
widthThis =restwidth-1;
html2="<div id='tip"+i+"' style='position:absolute; width:"+widthThis+"px; height:100%;top:0;  left:"+fwidth*i+"px; border-left-width:1px;border-left-style: solid;border-left-color: #0CF;border-right-width:1px;border-right-style: solid;border-right-color: #0CF;z-index:3'></div>"; 
}
$('#tipDiv').append(html2);


}


$('#tipDiv').css("background-color","#9FF");
$('#tip0').css("background-color","yellow");

$("#img1").click( function () { alert(2222)});    //这样子就没有反应


$("#imgDiv").click( function () { alert(3333)});  //这样子就有反应


for(var i=0; i<imgsrc.length; i++) {

$("#img"+i).bind("mouseenter",function() {

showImg(this.id.slice(-1));

   });


$("#img"+i).bind("mouseleave",function(){

clearTimeout(time);

if(this.id != "img"+this.id.slice(-1)){
$('#tip'+this.id.slice(-1)).css("background-color","#9FF");
}

});


}


function showImg(i){
time =setTimeout(function(){
if(this.id = "img"+i){
$("#imgImg").attr("src",imgsrc[i]);

for(var j=0; j<imgsrc.length; j++) {
$('#tip'+j).css("background-color","#9FF");
}

showLoc(i);

}},400);

}

function showLoc(i){
$('#tip'+i).css("background-color","yellow");
}

});


请教各位,此页面在火狐和chrome中都可以运行,在ie6-8都不能运行,经查出,问题在js中:
$("#img1").click( function () { alert(2222)});    //这样子就没有反应
$("#imgDiv").click( function () { alert(3333)});  //这样子就有反应

本人前台做的不多,实在是调试不出来了
[解决办法]
将click换成 bind或live试试,语法有些不同。 例子如下:
第一种 bind
$('.clickme').bind('click', function() {
  alert("Bound handler called.");
});


第二种 live
$('.clickme').live('click', function() {
  alert("Live handler called."); 
});
[解决办法]
把 click 换成 onclick
[解决办法]
兼容性等神马的问题最头疼了。。同情同情。。

[解决办法]


$(document).on('click','#img1', function () { alert(2222)});

[解决办法]
click函数在浏览器下的兼容问题,可以通过给节点注册事件来完成:
AttachEvent("#img1", "click",  function () { alert(2222)}); 
//注册事件函数(target:节点/eventName:事件/handler:处理函数)
function AttachEvent(target, eventName, handler){
var eventHandler = handler;
  if(window.attachEvent)//IE
          target.attachEvent("on" + eventName, eventHandler );
  else  //FF
          target.addEventListener(eventName, eventHandler, false);
}
[解决办法]
IE9按下F12可以更详细的跟踪脚本问题,并可以模拟IE7、8的环境 
[解决办法]
还没遇到过楼主这情况一直用jquery的.click在IE中都很正常
[解决办法]
引用:
好像跟jQuery(document).ready(function(){ 以及append添加的代码、事件有关系,调试的时候代码能出来,事件没有效果

楼主,14楼说了他使用没问题
你最简化一下你的jsp再试试行不行。
[解决办法]
看不明白,帮顶了。

热点排行