Javascript jQuery-can';我得不到';这';工作

Javascript jQuery-can';我得不到';这';工作,javascript,jquery,this,Javascript,Jquery,This,我已经设法让一个简单的动画工作,所以当我用“gallery wrap”类滚动我的div时,一个带有“放大镜”类的图像出现在顶部 我的问题是,我有很多“gallery wrap”类的div和很多“放大镜”类的图像 img.magnifier位于.gallery wrap父div内,而不是.gallery wrap内 我需要它,这样它只会执行当前悬停的元素,它已经在执行了,但是它会为页面上的所有img.magnifier设置动画 我想它可能看起来像这样 $("img.magnifier").

我已经设法让一个简单的动画工作,所以当我用“gallery wrap”类滚动我的div时,一个带有“放大镜”类的图像出现在顶部

我的问题是,我有很多“gallery wrap”类的div和很多“放大镜”类的图像

img.magnifier
位于
.gallery wrap
父div内,而不是
.gallery wrap

我需要它,这样它只会执行当前悬停的元素,它已经在执行了,但是它会为页面上的所有
img.magnifier
设置动画

我想它可能看起来像这样

    $("img.magnifier").hide(); //this hides the image on page load

    $('.gallery-wrap').hover(function() {   
        $(this).parent("img.magnifier").show();            
            }, function() {
        $(this).parent("img.magnifier").hide();
    });
但却无法让它发挥作用


任何想法都会帮上大忙,谢谢。

不应该是这样的吗:

$('.gallery-wrap').hover(function() {   
    $(this).find("img.magnifier").show();            
        }, function() {
    $(this).find("img.magnifier").hide();
});
如果我理解正确,
img.magnifier
.gallery wrap
的子项,因此应该使用
find()
而不是
parent()
,您需要更改:

$(this).parent("img.magnifier")
致:


由于img标记是gallery wrap的子元素。

能否为gallery wrap和关联的img.放大镜分配匹配的id值

$('.gallery-wrap').hover(function() {   

    var id = $(this).attr('id');
    $("img.magnifier#"+id).show();            
        }, function() {
    $("img.magnifier#"+id).hide();
});
您与以下方面关系密切:

$(this).parent("img.magnifier").show(); 
将其更改为:

$(this).parent().find("img.magnifier").show(); 

那么它应该会起作用。当然可以对您的
隐藏()执行相同的操作。

因为img.magnifier不在里面。gallery wrap,find()在这里不起作用

试试这个:



    $("img.magnifier").hide(); //this hides the image on page load

    $('.gallery-wrap').hover(function() {   
        $(this).parents("img.magnifier").last().show();            
            }, function() {
        $(this).parents("img.magnifier").last().hide();
    });


如果parents()集合中不止一个img.放大镜,.last()是必需的。

发布实际的html。父项(“img.magnifier”)仅当其父项是精确的img.magnifier时才起作用。Try.parents(“img.放大镜”)我认为这是被否决的,因为我建议使用find或children函数,而find是这个场景的合适选择?不,img位于gallery wrap parent div中。您好,对不起,我错误地解释了这个问题。我的意思是img.magnifier位于.gallery wrap的父分区内-所以这个词对我来说$(this.parent().find(“img.magnifier”).show();
$(this).parent().find("img.magnifier").show(); 


    $("img.magnifier").hide(); //this hides the image on page load

    $('.gallery-wrap').hover(function() {   
        $(this).parents("img.magnifier").last().show();            
            }, function() {
        $(this).parents("img.magnifier").last().hide();
    });