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一样工作。谢谢你的帮助