消息关闭
    暂无新消息!

关于IE9兼容性问题

问题作者 : 乖乖仔2017-08-17发布
问题描述:下面代码我在谷歌浏览器上执行正常:在一个画布上有两个控件  我点击控件会选中控件,点击空白处会选中画布
        在IE9出现问题:只能第一次点击控件  然后只能操作那个点击的控件 其它的包括整个浏览器都不可操作了

代码比较多我贴部分
 var para=document.createElement("div");//创建一个标签p节点名为para 
    //para.setAttribute("onclick","getId(this.id,0)");
    para.setAttribute("onmousedown","isKeyPressed(event,this.id)");


function isKeyPressed(event, id) {
$("#s1 input").focus();
//if(id==undefined)return;
if(id.indexOf("tab_")!=-1){
if(sdata[lid].tabpos==undefined){
         sdata[lid].tabpos==0;
         }
         var f = sdata[lid].tabpos==0?true:false;
tabPressed(id,f);
if (event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
return false;
}

if (event.button == 0) {

if (event.ctrlKey == 1) {
var it = -1;
for (var i = 0; i < setId.length; i++) {
if (setId[i] == id) {
it = i;
}
}
if (it == -1) {
//如果选中的是自定义或标签页里的控件
if (setId.length == 0) {
pitchOn = 0;
getId(id, 0);
move(id, moveId);
}else if(sdata[id]._delete2==true ||sdata[id]._delete==true){
//判断该选中是否和之前选中的在同一个控件
if(sdata[setId[0]]._delete2==true||sdata[setId[0]]._delete==true){
var child = $("#"+setId[0]).parent().children();
var cf = true;
for(var i=0;i<child.length;i++){
if(child.eq(i).attr("id")==id){
setId[setId.length] = id;
moveId = setId;
pitchOn = 1;
getId(id, 1);
move(id, moveId);
cf = false;
break;
}
}
if(cf){
pitchOn = 0;
getId(id, 0);
move(id, moveId);
}
}else{
pitchOn = 0;
getId(id, 0);
move(id, moveId);
}
} else {
if(sdata[setId[0]]._delete2==true||sdata[setId[0]]._delete==true){
pitchOn = 0;
getId(id, 0);
move(id, moveId);
}else{
setId[setId.length] = id;
moveId = setId;
pitchOn = 1;
getId(id, 1);
move(id, moveId);
}
}
} else {
var temp = [];
for (var i = 0, j = 0; i < setId.length; i++) {
if (it != i) {
temp[j++] = setId[i];
}
}
setId = temp;
--ind;
moveId = setId;
pitchOn = 2;
getId(id, 2);
move(id, moveId);
}
} else {
pitchOne = -1;
var clickflag = false;
for (var i = 0; i < $(".dot").length; i++) {
if(id == $(".dot")[i].parentNode.id){
clickflag = true;
}
}
if(clickflag){
for (var i = 0; i < $(".dot").length; i++){
moveId[i]=$(".dot")[i].parentNode.id;
}
}else{
for (var i = $(".dot").length - 1; i >= 0; i--) {
if(isIE()){
$(".dot")[i].setAttribute("className","no-dot");
}else{
$(".dot")[i].setAttribute("class","no-dot");
}
}
moveId = [];
moveId[0] = id;
if(isIE()){
$("#" + id)[0].firstChild.setAttribute("className","dot");
}else{
$("#" + id)[0].firstChild.setAttribute("class","dot");
}
}

setId = moveId;
show(id);
editId.push(id);
$("#" + id).ligerResizable({
//拖动改变大小的边界
maxResize:true,
maxWidth:parseInt(sdata[0].width),
maxHeight:parseInt(sdata[0].height),
onStartResize : function(){
c = 0;

},
onEndResize : function(e) {
c = 1;
Kflag = false;
nodeResize(id);
}
});
/*  $("#" + id).bind("contextmenu", function(e) {
if(this.id=="canvans")return false;
setId[0] = this.id ;
menu1.hide();
menu.show({
top : e.pageY,
left : e.pageX
});
return false;
});  */
move(id, moveId);
}
if (event.stopPropagation){
event.stopPropagation();
}
else{
event.cancelBubble = true;
}
//在控件上出右击
}else if(event.button == 2){
$("#" + id).bind("contextmenu", function(e) {
if(this.id=="canvans")return false;
var clickflag = false;
for (var i = 0; i < $(".dot").length; i++) {
if(id == $(".dot")[i].parentNode.id){
clickflag = true;
}
}
if(clickflag){
for (var i = 0; i < $(".dot").length; i++){
setId[i]=$(".dot")[i].parentNode.id;
}
}else{
for (var i = $(".dot").length - 1; i >= 0; i--) {
if(isIE()){
$(".dot")[i].setAttribute("className","no-dot");
}else{
$(".dot")[i].setAttribute("class","no-dot");
}
}
setId = [];
moveId = [];
setId[0]=id;
moveId[0]=id;
if(isIE()){
$("#" + id)[0].firstChild.setAttribute("className","dot");
}else{
$("#" + id)[0].firstChild.setAttribute("class","dot");
}
}

if(setId.length==1&&(sdata[setId].type=="11"||sdata[setId].type=="20")){
menu1.hide();
menu.hide();
mp = false;
if(parseInt($("#"+id)[0].style.top.split("px")[0])>200){
mp = true;
menu2.show({
top : e.pageY - 146,
left : e.pageX
});
}else{
menu2.show({
top : e.pageY,
left : e.pageX
});
}

}else{
menu1.hide();
menu2.hide();
if(parseInt($("#"+id)[0].style.top.split("px")[0])>200){
menu.show({
top : e.pageY - 146,
left : e.pageX
});
}else{
menu.show({
top : e.pageY,
left : e.pageX
});
}


}
return false;
});
}
}


0个回答

暂无回答!