jQuery - 无法获取“this”去工作

发布于 2024-11-29 02:16:24 字数 942 浏览 1 评论 0原文

我已经成功地实现了一个简单的动画,因此当我用“gallery-wrap”类滚动我的 div 时,带有“magnifier”类的图像会出现在顶部。

我的问题是我有很多带有“gallery-wrap”类的 div 和很多带有“magnifier”类的图像。

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

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

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();
    });

但无法让它发挥作用。

任何想法都会有很大的帮助,谢谢。

i've managed to get a simple animation working so when I roll over my div with the class "gallery-wrap", an image with the class "magnifier" appears on top.

My problem is I have lots of divs with the class "gallery-wrap" and lots of images which have the class "magnifier".

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

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

The img.magnifier is located inside the .gallery-wrap parent div, not inside .gallery-wrap.

I need it so this does only the current hovered element, which it is doing already, but its animating all the img.magnifier on the page?

I thought it would maybe look like this...

    $("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();
    });

But cannot get it to work.

Any ideas would be a huge help thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

2024-12-06 02:16:24

难道不应该是这样的:

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

如果我理解正确的话, img.magnifier.gallery-wrap 的子级,所以 find()应该使用而不是parent()

Shouldn't it be like this:

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

If I understand correctly, img.magnifier is a child of .gallery-wrap, so find() should be used instead of parent().

是伱的 2024-12-06 02:16:24

您很接近:

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

将其更改为:

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

那么它应该可以工作。当然,对您的 hide() 执行同样的操作。

You were close with:

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

Change it to:

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

Then it should work. Do the same thing with your hide() of course.

信仰 2024-12-06 02:16:24

您可以为 gallery-wrap 和关联的 img.magnifier 分配匹配的 id 值吗?

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

    var id = $(this).attr('id');
    $("img.magnifier#"+id).show();            
        }, function() {
    $("img.magnifier#"+id).hide();
});

Can you assign matching id values to the gallery-wrap and associated img.magnifier?

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

    var id = $(this).attr('id');
    $("img.magnifier#"+id).show();            
        }, function() {
    $("img.magnifier#"+id).hide();
});
柠檬色的秋千 2024-12-06 02:16:24

由于 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.magnifier,则.last()是必要的。

As img.magnifier is not inside .gallery-wrap, find() will not do it here.

Try this one:



    $("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();
    });

The .last() is necessary if you have more than just one img.magnifier in the parents() collection.

七禾 2024-12-06 02:16:24

您需要将:更改

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

为:,

$(this).find("img.magnifier")

因为 img 标签是 gallery-wrap 的子元素。

You need to change:

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

to:

$(this).find("img.magnifier")

since the img tag is a child element of your gallery-wrap.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文