[英]If Mouseover Div Equals False - JQuery / Javascript
我正在尝试使它起作用:
if($('#myDiv').hover() == false) {
myFunction();
}
Chrome或Firebug控制台的错误处理方式不多。 我看了其他一些帖子,有一个答案是这样的:
if($('#myDiv').is(':hover') == false) {
myFunction();
}
但是,这也不起作用。
如果有帮助,请使用jsfiddle: http : //jsfiddle.net/yuwPR/2/
任何想法表示赞赏。
谢谢
编辑:
感谢您的回答,我什么都做不了。 我认为这可能是不可能的。 哦,我会尝试其他的!
再次感谢
ps最有创造力的答案标记为正确,并全面投票。
在不知道最终意图的情况下,您可以将鼠标悬停在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上的代码示例。
悬停函数需要2个回调函数:
('#myDiv').hover(function () {
// function to call when hovering
},
function () {
myFunction();
}
);
因此,当悬停为“ false”时,即在鼠标移出时,将调用第二个函数。
如果只对悬停时感兴趣的事情感兴趣,可以使用mouseout()
函数:
$('#myDiv').mouseout(function() {
myFunction();
}
);
您的第一个电话永远无法使用:
$('#myDiv').hover()
这实际上是“触发元素上的hover
事件”。 它不会检查您的用户当前是否将鼠标悬停在元素上。
您的第二个公式应该起作用:
$('#myDiv').is(':hover')
这将检查元素当前是否有鼠标悬停在该元素上。 但是,它似乎不适用于文档加载。 在这里可以看到一个有效的示例。 如果您可以弄清楚自己要做什么,则可能可以找到这种风格的工作代码。
此代码示例设置了一个全局js变量来存储div的悬停状态。 然后,我使用jquery悬停在true / false之间切换。 然后,我们仅每10毫秒触发一次检查悬停状态的函数。 目前,我只是设置窗口状态,以告诉您是否悬停。
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悬停捕获未包装在准备好的文档中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.