IE中的jQuery挑战是(:悬停)?
我为一个问题挣扎了好几天,却找不到答案 我有一个鼠标悬停的小东西,它在所有浏览器中都能正常工作,但在IE7、IE8和IE9中都不能正常工作 这样做的目的是,一个div出现在菜单点上方的鼠标上,并在离开菜单或div时消失。我想,我已将问题隔离到以下几行: 如果($('#顶部导航')。是(':hover')|$('#标题')。是(':hover')|$('#菜单a')。是(':hover')){ 因为IE中的行为,我很确定这就是麻烦所在IE中的jQuery挑战是(:悬停)?,jquery,internet-explorer,hover,Jquery,Internet Explorer,Hover,我为一个问题挣扎了好几天,却找不到答案 我有一个鼠标悬停的小东西,它在所有浏览器中都能正常工作,但在IE7、IE8和IE9中都不能正常工作 这样做的目的是,一个div出现在菜单点上方的鼠标上,并在离开菜单或div时消失。我想,我已将问题隔离到以下几行: 如果($('#顶部导航')。是(':hover')|$('#标题')。是(':hover')|$('#菜单a')。是(':hover')){ 因为IE中的行为,我很确定这就是麻烦所在 $(document).ready( function() {
$(document).ready( function() {
$mypage = $("body").attr("class");
$("#"+$mypage).show();
$("#menu a:contains('"+$mypage+"')").parent().addClass("current");
$("#menu a").hover(function() {
$(".transparent").hide();
$("#menu li").removeClass("current");
$(this).parent().addClass("current");
$element = "#" + $(this).text();
$($element).show();
});
function hide_popup(){
if ($('#top-navigation').is(':hover') || $('#header').is(':hover') || $('#menu a').is(':hover')) {
return false;
}else{
$("#menu li").removeClass("current");
$(".transparent").hide();
$mypage = $("body").attr("class");
$("#"+$mypage).show();
$("#menu a:contains('"+$mypage+"')").parent().addClass("current");
}
};
$("body").mouseover(function() {
window.setTimeout( hide_popup, 2000 );
});
});
我很高兴能得到任何帮助!干杯!IE在CSS中的动态伪类及其JavaScript事件对应项方面一直存在臭名昭著的问题。你能做的最好的事情是跟踪鼠标移动,只有当鼠标进入目标元素的区域时才启动代码例程。换句话说,你应该使用mouseover event与screenX和screenY事件属性相结合。IE在CSS中的动态伪类及其JavaScript事件对应项方面一直存在臭名昭著的问题。您可以做的最好的事情是跟踪鼠标移动,并仅在鼠标进入目标元素区域时启动代码例程。换句话说,您可以应该将鼠标悬停事件与screenX和screenY事件属性结合使用。好的,我想出了一个解决方案:
function hide_popup(){
$("#top").hover(function () {
return false;
},function () {
$("#menu li").removeClass("current");
$(".transparent").hide();
$mypage = $("body").attr("class");
$("#"+$mypage).show();
$("#menu a:contains('"+$mypage+"')").parent().addClass("current");
});
};
好的,我想出了一个解决办法:
function hide_popup(){
$("#top").hover(function () {
return false;
},function () {
$("#menu li").removeClass("current");
$(".transparent").hide();
$mypage = $("body").attr("class");
$("#"+$mypage).show();
$("#menu a:contains('"+$mypage+"')").parent().addClass("current");
});
};