【问题标题】:Checking if jQuery .hover action is already binded [duplicate]检查jQuery .hover 动作是否已经绑定[重复]
【发布时间】:2013-03-15 01:44:12
【问题描述】:

有没有办法检查一个元素是否已经有一个动作,由 jQuery .hover 函数触发?

【问题讨论】:

  • 没有记录在案的方法不使用可能会因版本而异的内部方法。
  • 没有简单的方法可以做到这一点,但是您可以检查$._data( elem, "events" ); 并查看是否已绑定mouseenter/leave。

标签: javascript jquery oop


【解决方案1】:

可以通过element.data('events')['eventName']查看

如果悬停,它将是:

var hasHover = x.data('events')['mouseover'] && x.data('events')['mouseout'];

在 jQuery 1.8 及更高版本中,您必须使用 $._data 访问它,如 this answer 中所述

var events = $._data(obj[0], "events");
var hasHover = events['mouseover'] && events['mouseout'];

【讨论】:

  • 除非您使用的是 jQuery 1.8+,否则它已被移到其他地方。
  • @KevinB - 啊,不知道那个细节。几年来一直在使用上述技术。但是,是的,我一直在使用版本
  • @KevinB - 另一个 SO 答案解决了版本 >= 1.8
  • 它仍在使用未记录的方法,不应该用于调试之外。
【解决方案2】:

看看选择器上的过滤器

$('.result').each(function(){
$(this).hover(function() {
$(this).filter(':not(:animated)').animate({
'height':'110px',
},160);
},function(){$(this).animate({'height':'38px'},80);});
});

【讨论】:

  • 啊我错过了你的问题 sry
猜你喜欢
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 2018-06-15
  • 2016-08-11
  • 2021-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多