我在IE6 / 7中遇到了一个问题,他们忽略了元素的实时绑定。我似乎无法找到这个问题的任何解决方案,我真的需要IE6和7支持(修复一个应该修复另一个)。我的元素的第一次单击按预期工作但后面的绑定消失了,我无法让它工作。这在IE8或任何其他当前浏览器中都不会发生。
这是我的代码。如您所见,在第5行,我正在警告hrefID变量。第一次点击后,hrefID清楚地告诉我绑定消失了,因为它打印的href完全不同。
有人可以帮忙吗?
// AJAX Page Changing
$("#mContainer a:lt(6),#home a").live("click", function(){
var clickID = 0;
var hrefID = $(this).attr("href");
alert(hrefID);
switch(hrefID){
case 'home':
clickID = 0;
break;
case 'portfolio':
clickID = 1;
break;
case 'resume':
clickID = 2;
break;
case 'about':
clickID = 3;
break;
case 'contact':
clickID = 4;
break;
case 'tutorials':
clickID = 5;
break;
}
$.ajax({
type: 'POST',
url: "/includes/pages/"+hrefID+".php",
data: "ajaxtab=1",
cache: false,
success: function(code){
// Change Tab Image
var expireDate = new Date(new Date().getTime()+86400000*5); //5 Days
document.cookie = "soluml="+hrefID+";expires="+expireDate.toGMTString();
$("#body").fadeTo("fast", 0, function(){$("#body").html(code);});
$("#body").fadeTo("fast", 1);
$.post("/includes/topnav.php",{ajaxtab:clickID},function(data){$("#mContainer").html(data)});
},
error: function(){
return true;
}
});
return false;
});
//
答案 0 :(得分:0)
我不是百分百确定这是否是问题,但是JSLint正在对一个缺少的分号发出嘎嘎声。较旧的IE浏览器对现代浏览器的宽容度要低得多,所以我先给它一个镜头。我非常怀疑这个问题本身就存在。
此:
$.post("/includes/topnav.php",{ajaxtab:clickID},function(data){$("#mContainer").html(data)});
应该是:
$.post("/includes/topnav.php",{ajaxtab:clickID},function(data){$("#mContainer").html(data);});
第36行问题字符101:缺少分号。
答案 1 :(得分:0)
您使用的是jquery-1.4吗?对.live的重要更改仅在jquery-1.4之后可用。
也许你可以试试这个,它使用event.target
代替this
:
// AJAX Page Changing
$("#mContainer a:lt(6),#home a").live("click", function(e){
var clickID = 0;
var hrefID = $(e.target).attr("href");
alert(hrefID);
switch(hrefID){
case 'home':
clickID = 0;
break;
case 'portfolio':
clickID = 1;
break;
case 'resume':
clickID = 2;
break;
case 'about':
clickID = 3;
break;
case 'contact':
clickID = 4;
break;
case 'tutorials':
clickID = 5;
break;
}
$.ajax({
type: 'POST',
url: "/includes/pages/"+hrefID+".php",
data: "ajaxtab=1",
cache: false,
success: function(code){
// Change Tab Image
var expireDate = new Date(new Date().getTime()+86400000*5); //5 Days
document.cookie = "soluml="+hrefID+";expires="+expireDate.toGMTString();
$("#body").fadeTo("fast", 0, function(){$("#body").html(code);});
$("#body").fadeTo("fast", 1);
$.post("/includes/topnav.php",{ajaxtab:clickID},function(data){$("#mContainer").html(data)});
},
error: function(){
return true;
}
});
return false;
});
//