【问题标题】:jQuery strange behaviour whith hover悬停时的jQuery奇怪行为
【发布时间】:2012-03-17 17:17:12
【问题描述】:

我对 jQuery 的悬停,addClass 有一个奇怪的问题

$(document).ready(function(){
    $('#selectable li').hover(
            function(){
                $(this).addClass('selecting', 600);
            },
            function(){
                $(this).removeClass('selecting', 800);
            }
    );

});

现在奇怪的是被选中的元素亮了两次。怎么会这样?我该怎么做才能防止两次亮起?

最好的问候, B. 凯撒

【问题讨论】:

  • 你可能会得到你需要的结果,而不需要 javascript 和纯 css
  • 参数 600 和 800 的用途是什么?
  • 600 和 800 有什么用? .addClass() 没有时间参数。

标签: jquery jquery-ui hover addclass


【解决方案1】:

尝试使用这样的替代方法:

$('#selectable li').on('mouseenter',function(){
  $(this).addClass('selecting');
}).on('mouseleave',function(){
  $(this).removeClass('selecting');
});

你需要一个最新版本的 jQuery。 ver 1.7+

不太确定您是否尝试使用 addClass/removeClass 调用中的数字参数来完成。 jQuery documentation 将这些函数定义如下:

http://api.jquery.com/addClass/

.addClass(className)
className一个或多个要添加的类名 每个匹配元素的类属性。

.addClass(function(index, currentClass))
function(index, currentClass)返回一个或多个空格分隔的类的函数 要添加到现有类名的名称。接收索引 集合中元素的位置和现有的类名称为 论据。在函数中,this 指的是当前元素 集合。

removeClass() documentation 的工作方式也几乎相同。

【讨论】:

  • 600 和 800 有什么用? .addClass() 没有时间参数。
  • 悬停在这里应该很好。无需额外的事件绑定。顺便说一句:function 这个词有错别字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 2011-06-07
  • 2014-06-30
相关资源
最近更新 更多