我正试图让它发挥作用:
if($('#myDiv').hover() == false) {
myFunction();
}
Chrome或Firebug控制台中的错误并没有太大影响。我已经看了一些其他帖子,并且有一个答案使用了类似的东西:
if($('#myDiv').is(':hover') == false) {
myFunction();
}
然而,这也行不通。
如果有帮助的话,这是一个jsfiddle:http://jsfiddle.net/yuwPR/2/
任何想法都非常感激。
由于
修改
感谢您的回答,我无法获得任何工作。我想这可能是不可能的。哦,我会尝试其他的东西!
再次感谢
P.S。最具创造性的答案标记为正确并且全面支持。
答案 0 :(得分:2)
在不知道您的最终意图的情况下,您可以在document
上悬停并检查当前target.id
$(document).mouseover(function(event) {
if (event.target.id == "myDiv") {
$("body").css("background-color", "red"); //over the div so change the color
return;
}
$("body").css("background-color", "green"); //no on the div
});
jsfiddle上的代码示例。
答案 1 :(得分:1)
悬停功能需要2个回调函数:
('#myDiv').hover(function () {
// function to call when hovering
},
function () {
myFunction();
}
);
因此,当鼠标悬停为“假”时,即鼠标输出时,将调用第二个函数。
如果您只想在悬停停止时做某事,可以使用mouseout()
功能:
$('#myDiv').mouseout(function() {
myFunction();
}
);
答案 2 :(得分:1)
你的第一个电话永远无法运作:
$('#myDiv').hover()
这实际上说"触发元素"上的hover
事件。它不会检查您的用户当前是否将鼠标悬停在该元素上。
你的第二个表述应该有效:
$('#myDiv').is(':hover')
这将检查元素当前是否有鼠标悬停在它上面。但是,它似乎不适用于文档加载。可以看到一个有效的例子here。如果您可以澄清您尝试做的事情,可能会找到一些这种风格的工作代码。
答案 3 :(得分:1)
此代码示例设置一个全局js变量来存储div的悬停状态。然后我使用jquery悬停在true / false之间切换。然后,我们每10ms启动一次检查悬停状态的函数。目前,我只是设置窗口状态,告诉您是否徘徊。
var _MOUSEOVER_IN_PROGRESS = false; //stores the hover state
function isover(){
if(_MOUSEOVER_IN_PROGRESS){
window.status = 'Still over!';
} else {
window.status = 'You are not hovering on me!';
}
setTimeout("isover()",10); //checking every 10ms!
}
$(document).ready(function(){
isover();
$('#mydiv').hover(
function(){ _MOUSEOVER_IN_PROGRESS = true; },
function(){ _MOUSEOVER_IN_PROGRESS = false; }
);
});
编辑我的代码!我的mydiv悬停捕获没有包装在准备好的文件中