jQuery悬停功能 - 我错过了啥?

Posted

技术标签:

【中文标题】jQuery悬停功能 - 我错过了啥?【英文标题】:jQuery hover function - what am I missing?jQuery悬停功能 - 我错过了什么? 【发布时间】:2013-07-06 01:35:12 【问题描述】:

我只是想为我的 html 代码中的一些 div 设置动画。我刚刚参加了一个暑期课程,现在已经结束了,我想继续编码和学习更多内容,所以我只是在胡闹,但很快就结束了。

$(document).ready(function() 
    $('div').hover(function() 
        $(this).animate(height: '68px',opacity: '0.3','650'),
            function() 
        $(this).animate(height: '45px',opacity: '1.0','650');
        ;
    );
);

据我所知,一切都设置得很好,我使用悬停的原因是因为“鼠标进入/离开”在 chrome 中不起作用(无论出于何种原因)。我浏览了一堆类似的问题,但找不到我一直在寻找的东西。

【问题讨论】:

你能在 jsFiddle.net 上设置一个例子吗? jsfiddle.net/b8up9 【参考方案1】:

你的支撑搞砸了。我觉得应该是这样的:

$(document).ready(function() 
    $('div').hover(function() 
        $(this).animate(height: '68px',opacity: '0.3','650');
    , function() 
        $(this).animate(height: '45px',opacity: '1.0','650');
    );
);

仅供参考,如果您查看浏览器的错误控制台或调试控制台,它应该会显示类似这样的语法错误。

而且,您可能想要添加.stop(true, true),这样当您快速进出鼠标时动画就不会堆积。

$(document).ready(function() 
    $('div').hover(function() 
        $(this).stop(true, true).animate(height: '68px',opacity: '0.3','650');
    , function() 
        $(this).stop(true, true).animate(height: '45px',opacity: '1.0','650');
    );
);

工作示例:http://jsfiddle.net/jfriend00/tZEWy/

【讨论】:

是的,它应该可以工作......而且......给你的 div (id='abc') 提供 id 并使用 $('#abc') 而不是 $( 'div') 是的,您的代码可以工作,但是当我从 notepad++ 保存并运行时,它仍然没有动画。 @JAPytlak - 然后,显然您将其放入另一个页面的方式有问题。代码是正确的并且在这个 jsFiddle 中运行。你在这个其他页面中加载了 jQuery 吗?你能提供一个链接到这个其他页面吗?如果不向我们显示您正在运行它的实际页面,我们所能做的就是猜测可能出了什么问题。 @JAPytlak:这听起来可能是一个不同的问题,可能更多关于notepad++而不是javascript(我不使用它,所以不知道你的问题可能是什么)。 moxie.cs.oswego.edu/~jpytlak/projects 是网站,也许我错过了一些超级简单的东西?【参考方案2】:

我认为您错过了关闭第一个功能。来试试这个

$(document).ready(function() 
    $('div').hover(
        function() 
            $(this).animate(height: '68px',opacity: '0.3','650');
        ,
        function() 
            $(this).animate(height: '45px',opacity: '1.0','650');
        
    );
);

【讨论】:

第二个函数的右大括号后面还有一个额外的分号。【参考方案3】:

jQuery 的悬停功能只是两个功能的混合!

它是.mouseenter.mouseleave 的混合体,它们在它的参数中。

所以.hover 就是这个.hover(.mouseenter, .mouseleave)

那么你必须这样做:

$('div').hover(function()

    $(this).animate(height: '68px',opacity: '0.3','650');

 /*mouseenter */, function()

    $(this).animate(height: '45px',opacity: '1.0','650');

 /*mouseleave*/);

【讨论】:

以上是关于jQuery悬停功能 - 我错过了啥?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 类选择器和单击事件,我错过了啥吗?

使用 AJAX 的 jQuery AutoComplete - 我错过了啥?

我的 Android 通知计划功能出了啥问题?

另一个线程可以通过其地址访问本地函数\这个优化是不是有效\我错过了啥大事吗?

jquery防止触摸悬停功能

JQuery Animate - 如何在悬停后立即停止悬停功能(不要完成悬停功能)