Jquery问题,fadeTo处于悬停状态

Jquery问题,fadeTo处于悬停状态,jquery,html,fadeto,Jquery,Html,Fadeto,因此,基本上,我试图让div.show在悬停时淡入,然后当你停止悬停时,让它淡入0的不透明度 但是,当您停止悬停时,我无法使div衰减回0 这是我的密码: $(document).ready(function(){ $("div.post.photo").live('hover', function() { $(this).children("div.show").fadeTo("slow", .7); }, function(){ $(this)

因此,基本上,我试图让
div.show
在悬停时淡入,然后当你停止悬停时,让它淡入0的不透明度

但是,当您停止悬停时,我无法使div衰减回0

这是我的密码:

$(document).ready(function(){
    $("div.post.photo").live('hover', function() {
        $(this).children("div.show").fadeTo("slow", .7);
    }, function(){
        $(this).children("div.show").fadeTo("slow", 0);
    });
});

谢谢你

我很确定你应该把它退回到1,而不是0。 另外
live()
只接受一个处理程序。您需要单独附加鼠标移出事件


我很确定您应该将其退回到1,而不是0。 另外
live()
只接受一个处理程序。您需要单独附加鼠标移出事件


您的问题是
hover
不是Javascript事件,它是
mouseenter
mouseleave
事件的JQuery速记,因此不能在
live
方法中使用。你需要把它们分开捆扎。此外,您应该注意到,
.live()
方法已被弃用。您的问题是
hover
不是Javascript事件,它是
mouseenter
mouseleave
事件的JQuery速记,因此不能在
live
方法中使用。你需要把它们分开捆扎。此外,您应该注意到,
.live()
方法已被弃用。我发现,如果使用
.hover()
而不是
.live()
,那么这种方法会起作用,所以我认为问题在于
.live()
不支持hover事件,可能是因为
.live()
只有一个处理函数,而不是两个

在jQuery 1.7+中,这似乎是可行的(将其分解为两个事件处理程序,并将其现代化为
.on()
):

您可以看到它在这里工作:


仅供参考,我切换到
.on()
,因为
.live()
在jQuery 1.7+中不受欢迎。

我发现如果您使用
.hover()
而不是
.live()
,这是可行的,所以我认为问题在于
live()
不支持悬停事件,可能是因为
.live()
只有一个处理函数,不是两个

在jQuery 1.7+中,这似乎是可行的(将其分解为两个事件处理程序,并将其现代化为
.on()
):

您可以看到它在这里工作:


仅供参考,我切换到了
.on()
,因为jQuery 1.7+中不推荐使用
.live()

您需要使用
事件。键入
来显式检查
鼠标指针
鼠标删除
事件。你不需要把它们捆两次

$(document).ready(function(){
    $("div.post.photo").live('hover', function(event) {

        if( event.type === 'mouseenter') 
            $(this).children("div.show").fadeTo("slow", .7);
        else if( event.type === 'mouseleave' )
            $(this).children("div.show").fadeTo("slow", 0);
    });
});

这是一个例子。就我个人而言,我会在
上使用
,但我不确定您使用的是哪个版本的jQuery

您需要使用
event.type
显式检查
mouseenter
mouseleave
事件。你不需要把它们捆两次

$(document).ready(function(){
    $("div.post.photo").live('hover', function(event) {

        if( event.type === 'mouseenter') 
            $(this).children("div.show").fadeTo("slow", .7);
        else if( event.type === 'mouseleave' )
            $(this).children("div.show").fadeTo("slow", 0);
    });
});

这是一个例子。就我个人而言,我会在
上使用
,但我不确定您使用的是哪个版本的jQuery

那也不值得。/那与他正试图做的相反。它应该淡出,而不是回到100%opacity@NateB正如我在回答中指出的,我认为这与他真正需要的恰恰相反。除非先决条件是
.show
以0不透明度开始,但OP中没有这方面的内容。不管怎样,只需将1更改为0,然后将
不透明度:0
添加到
.show
即可翻转。很抱歉,它在css中设置为“不显示”。好的,这是可行的。非常感谢,我不得不改变数字,这很好。有趣的是,委托人在不使用live on新元素的情况下工作,而on则不使用?这两者都不值得:/这与他试图做的相反。它应该淡出,而不是回到100%opacity@NateB正如我在回答中指出的,我认为这与他真正需要的恰恰相反。除非先决条件是
.show
以0不透明度开始,但OP中没有这方面的内容。不管怎样,只需将1更改为0,然后将
不透明度:0
添加到
.show
即可翻转。很抱歉,它在css中设置为“不显示”。好的,这是可行的。非常感谢,我不得不改变数字,这很好。有趣的是,delegate可以在不使用live on新元素的情况下工作,而on则不行?嗯,我的问题是,当您滚动到页面底部时,我使用一个无限滚动脚本来获取新帖子。因此,live允许脚本继续处理新元素。当我使用您的建议时,脚本在获取任何新的
div.post.photo
时都不起作用。如果我能看到您的实际页面,我可以提供帮助。除此之外,
.on()
直接替代了
.live()
,因此它应该提供相同的动态行为。在我的代码示例中,您可以改进的一件事是将
document.body
更改为父div,该div始终存在,但更接近动态添加的项。但是,我在上面使用了一个答案,即使用
delegate
而不是
on
,它就像champ一样工作。谢谢你的帮助。嗯,我的问题是,当你滚动到页面底部时,我使用一个无限滚动脚本来获取新帖子。因此,live允许脚本继续处理新元素。当我使用您的建议时,脚本在获取任何新的
div.post.photo
时都不起作用。如果我能看到您的实际页面,我可以提供帮助。除此之外,
.on()
直接替代了
.live()
,因此它应该提供相同的动态行为。在我的代码示例中,您可以改进的一件事是将
document.body
更改为父div,该div始终存在,但更接近动态添加的项。但是,我在上面使用了一个答案,即使用
delegate
而不是
on
,它就像champ一样工作。谢谢你的帮助