近日项目开发十分的繁忙,其中一个需求是实现响应式导航。(响应式的问题我们在css相关的博客中再交流)

大家都知道导航是需要下来菜单效果的,必然就会用到 jQuery的 hover() 方法。若是导航放在ipad中,自然hover()就没有什么意义了。那该如何取消hover()并添加touch事件呢?

今天遇到jquery需要去掉hover的问题,原以为直接unbind(“hover”)就可以搞定,可是搞了半天都报错。

原因其实很简单,hover并不是事件。打开参考手册,hover其实由 mouseenter和mouseleave构成的。这样问题就很明了!

/* 这种方法是错误的 */
$(#hover_div).unbind("hover");

/* 这种方法也是错误的 */
$(#hover_div).unbind("mouseover").unbind("mouseout");

/* 这种方法是新增的,在老的版本里是无法使用的 */
$(#hover_div).unbind("mouseenter mouseleave");

/* 这种方法正确的,新老版本皆可用 */
$(#hover_div).unbind("mouseenter").unbind("mouseleave"); 

上面的代码建议使用第四种,相对安全些。(自己也没测试具体哪些版本支持第三种方法)若是觉得不爽,自己刚download了新版的jQuery,就用第三种吧!

 

不管怎样,问题已解决,接着写代码吧!勤劳的码农。

相关文章:

  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2022-01-10
  • 2021-10-01
  • 2021-11-20
  • 2021-10-10
  • 2021-11-08
猜你喜欢
  • 2021-08-23
  • 2022-03-01
  • 2021-11-11
  • 2022-01-09
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案