Javascript $(此)。添加到脚本时不工作
您好,我有一个非常基本的脚本,当您将鼠标悬停在Javascript $(此)。添加到脚本时不工作,javascript,jquery,this,Javascript,Jquery,This,您好,我有一个非常基本的脚本,当您将鼠标悬停在元素上和下时,它会将子移动到其父中 问题是如果您将鼠标悬停在一个标签上。所有标签下的所有图像都将移动。。这是我不想要的。我试图通过添加与我的函数最接近的$(this)。但是当$(this).添加最接近的代码时,它会中断。如果您从我的代码中删除(this).closest,它可以正常工作,但它会影响所有代码,而不是只影响一个代码 HTML <div class="checkbox-cover images-true"> <div>
元素上和下时,它会将子
移动到其父
中
问题是如果您将鼠标悬停在一个标签上。所有标签下的所有图像都将移动。。这是我不想要的。我试图通过添加与我的函数最接近的$(this)。但是当$(this).添加最接近的代码时,它会中断。如果您从我的代码中删除(this).closest,它可以正常工作,但它会影响所有代码,而不是只影响一个代码
HTML
<div class="checkbox-cover images-true">
<div>
<label> <img></img> </label>
<label> <img></img> </label>
<label> <img></img> </label>
<label> <img></img> </label>
</div>
</div>
向上搜索DOM树(祖先),而不是向下搜索(后代),您真正想要的是
最后,正如评论所建议的,您可以缩短$(this)。使用$('img',this)
查找('>img')
,设置“context”参数。搜索DOM树,向上搜索(祖先),而不是向下搜索(后代),您真正想要的是
最后,如注释所示,您可以缩短$(this)。使用$('img',this)
查找('>img')
,设置“context”参数。因为img
是标签的子项,用于获取与选择器匹配的最近父项。请尝试以下方法:
$(".checkbox-cover.images-true>div>label").hover(
function() {
$('img', this).stop().animate({top: '-200px'});
},
function() {
$('img', this).stop().animate({top: '0'});
}
);
此外,您可以通过CSS实现这一点,如:
.images真实标签img{
位置:相对位置;
转换:所有1到0;
排名:0;
}
.图像真实标签:悬停img{
顶部:-200px;
}
因为img
在这里是label
的子项,用于获取与选择器匹配的最近父项。请尝试以下方法:
$(".checkbox-cover.images-true>div>label").hover(
function() {
$('img', this).stop().animate({top: '-200px'});
},
function() {
$('img', this).stop().animate({top: '0'});
}
);
此外,您可以通过CSS实现这一点,如:
.images真实标签img{
位置:相对位置;
转换:所有1到0;
排名:0;
}
.图像真实标签:悬停img{
顶部:-200px;
}
最近的
向上搜索DOM树,而不是向下搜索,您真正想要的是$(这个)。取而代之的是查找('>img')
。那么,我如何通过只影响当前悬停的元素而不是该类的所有元素来使脚本工作呢?将最近的
替换为查找
!我假设“this”指的是??这再次是一个让事情变得更加困难的主要例子,通过使用JS实现一些已经可以在CSS中完成的事情…最近的搜索DOM树向上,而不是向下,你真正想要的是$(这)。查找('>img'))
相反。那么如何通过仅影响当前悬停的元素而不是该类的所有元素来使脚本工作呢?将最近的替换为查找!我假设“this”指的是??这再次是一个让你自己变得更难的主要例子,通过使用JS实现一些已经可以在CSS中完成的事情……或者更简单的$('img',$(this))
,或者更好的$('img',this)
;)或者更简单的$('img',$(this))
或者更好的$('img',this)
;)
$(".checkbox-cover.images-true>div>label").hover(
function() {
$('img', this).stop().animate({top: '-200px'});
},
function() {
$('img', this).stop().animate({top: '0'});
}
);