我在使用jQuery悬停函数时遇到了一些困难。很可能是因为长时间盯着相同的代码,但也许有人可以提供帮助。
我有以下功能:
$("#div1").mouseover(function () {
$("#div2:hidden").show();
});
$("#div1").mouseout(function () {
$("#div2:visible").hide();
});
我也尝试过:
$("#div1").hover(function () {
$("#div2:hidden").show();
}, function() {
$("#div2:visible").hide();
});
在IE中都没有全部工作。我使用任何鼠标悬停,悬停,鼠标移除或任何其他“鼠标”功能编写的所有内容都会导致IE中出错。对于其他浏览器来说它是完美的,更令人烦恼的是它偶尔会在IE中运行,例如有时第一次和第二次它会起作用 - 然后就会出错。
任何帮助都会很棒!
答案 0 :(得分:0)
其他人在这里工作是错误的
修改
还有一件事将你的代码包装在就绪处理程序中
$(document).ready(function(){
//your code here
});
因为这里不起作用,因为它没有包装在就绪处理程序中,请注意第二小提琴中的no wrap(head)
选项
作为概念验证,请点击链接http://jsfiddle.net/TnPRA/10/
答案 1 :(得分:0)
这里的工作正常:http://jsfiddle.net/U89de/1/
你的第一个代码是错误的。更好的是使用:
$('#div1').mouseover(function() {
// mouseover event
}).mouseout(function() {
// mouseout event
});
如果使用jQuery 1.7或更高版本,最好使用.on()
:
$('#div1').on({
mouseover : function() {
// mouseover event
},
mouseout : function() {
// mouseout event
}
});
答案 2 :(得分:0)
我可能会遗漏一些东西,但我不明白为什么要在选择器中指定div2的可见性。以下应该可以正常工作:
$("#div1").mouseover(function () {
$("#div2").show();
});
$("#div1").mouseout(function () {
$("#div2").hide();
});
答案 3 :(得分:0)
用jQuery替换所有$符号
答案 4 :(得分:0)
我遇到了IE11的这个问题,将所有$更改为jQuery修复了这个问题。出于某种原因,IE在速记$上运行不佳。
答案 5 :(得分:-1)
尝试删除:隐藏和:从选择器中可见。 您正在使用ID来引用您的对象,在这种情况下您不需要ID。
$("#div1").hover(function () {
$("#div2:hidden").show();
}, function() {
$("#div2:visible").hide();
});
最好的问候,Davide
答案 6 :(得分:-1)
检查您的DOCTYPE,在这种情况下,您的示例使用:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">