简单的问题,如何在Jquery中完成此功能:
测试鼠标是否悬停在.myBox
if ($(".myBox").mouseleave = true) {
DO SOMETHING
} else {something else}
OR
if ($(".myBox").mouseover = false) {
DO SOMETHING
} else {Something else}
注意:我正在寻找IF声明
答案 0 :(得分:10)
jQuery提供is
方法来检查与jQuery对象有关的条件。在您的情况下,您可以检查:hover
CSS伪类:
$('.myBox').is(':hover') === true
看一下这个演示,尝试点击按钮(会发出警告true
),然后点击按钮并按下按钮(没有鼠标,它将返回false
)。< / p>
答案 1 :(得分:4)
$(".my_box").mouseover(function(){
// Mouse over...
});
$(".my_box").mouseout(function(){
// Mouse left...
});
以下是一个示例,将鼠标悬停在图片上时为其添加边框,如果未重新悬停图片,请在x时间后将其删除:See it working here
var hover_off = false;
var hover_count = 1000;
$(".my_box").mouseover(function() {
hover_off = false;
$(this).addClass('hovering');
});
$(".my_box").mouseout(function() {
hover_off = true;
setTimeout(myMouseOut, hover_count);
});
function myMouseOut() {
if (hover_off) {
$(".my_box").removeClass('hovering');
}
}
答案 2 :(得分:2)
没错,$('。myBox')。is(':hover')与jQuery 1.5.1一起使用会引发错误,但在我的测试中仅在Opera Browser(11.01)中: 未捕获的异常:语法错误,无法识别的表达式:悬停
解决方法是使用否定表达式:$('。myBox')。is('not(:hover)') 我在Opera 11,FF4,IE7,Chrome 5中测试时工作正常。
答案 3 :(得分:1)
使用.hover()http://api.jquery.com/hover/
答案 4 :(得分:1)
$(".myBox").hover(
function(){
//DO SOMETHING ON MOUSE ENTER
},
function(){
//DO SOMETHING ON MOUSE LEAVE
}
});
答案 5 :(得分:1)
这对我有用:
var hover = false;
$('.someClass').each(function(i,e){
hover = !hover ? $(e).is(':hover') : true;
});
if (hover)
// do something
else
// do something else
答案 6 :(得分:0)
使用此:http://plugins.jquery.com/project/enterleave-events
$('.myBox').bind('enter leave',function() {
// do something, use $(this) to get the object
});
答案 7 :(得分:0)
对mouseenter
和mouseleave
事件采取行动。
或者使用可以处理它们的hover
..
$('.myBox').hover(
function(e){
//do the mouseenter things here...
},
function(e){
//do the mouseleave things here...
}
);
的示例