if语句悬停事件,带有2个单击处理程序

时间:2012-05-29 20:46:16

标签: javascript jquery if-statement click handler

我正在尝试编写一个脚本来检测div是否可见,这将决定悬停事件是否会触发。

如果隐藏了ID“contact”,则将鼠标悬停在菜单项上将改变块的颜色。 然后,如果您单击另一个菜单项以显示ID“contact”,则悬停不应该起作用。单击另一个菜单项以隐藏ID“联系人”将允许悬停再次工作。

据我所知,这是jsFiddle:http://jsfiddle.net/YktAZ/123/

我甚至不确定我是否需要“其他”,但这是我“欺骗”悬停进入“不工作”或不显示变化的唯一方法。我真的只需要if允许它工作,然后如果条件不满足就不会触发悬停。

1 个答案:

答案 0 :(得分:1)

如果你将if语句放在悬停函数中,这将有效。 基本上,每次执行swap_hover()时,你都会向元素添加新的悬停事件处理程序,它实际上并没有打开或“关闭”悬停。

最好的方法是做这样的事情:

$("#item").hover(function(){
    //hover on
    if($("#otherItem").is(":visible"){
        //do this code  
    }
}, function(){
    //hover off
    //do this code.
});