【问题标题】:if statement hover event with 2 click handlers带有 2 个单击处理程序的 if 语句悬停事件
【发布时间】:2012-05-29 20:46:15
【问题描述】:

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

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

这是我对 jsFiddle 的了解:http://jsfiddle.net/YktAZ/123/

我什至不确定我是否需要“else”,但这是我将悬停“欺骗”为“不工作”或不显示更改的唯一方法。我真的只需要 if 让它工作,然后如果条件不满足就不会触发悬停。

【问题讨论】:

  • 记住 id 属性必须是唯一的。你不应该有多个“块”ID。

标签: javascript jquery if-statement click handler


【解决方案1】:

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

最好的方法是这样做:

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

【讨论】:

  • 啊,这太简单了,太棒了。如果在此悬停内,有没有办法添加第二个?我问的原因是因为实际上我将隐藏/显示 2 个 id,而不仅仅是一个。
  • 当然,您可以添加任意数量的if,它与任何其他代码块相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
相关资源
最近更新 更多