Jquery 选择器多个类(这个)

发布于 2024-10-26 23:49:08 字数 1043 浏览 1 评论 0原文

我有一个页面,列出了包含在带有广告容器类的 div 中的内容。在该容器中,有一个隐藏的 div,其类为 ad-contact。在广告类悬停时,我想对广告信息的显示进行动画处理。由于特定页面上有多个广告,我只想将当前悬停的广告容器的广告信息滑入。我的问题是,由于当您将鼠标悬停在任何广告上时,每个页面上有超过 10 个广告,所有广告联系人 div 都会向下滑动,而不是您将鼠标悬停在其上方的 div。

$(document).ready(function() {
    $('.ad-container').hover(
                             function(){
                                 $(".ad-contact").slideDown(1000);
                             },
                             function(){
                                 $(".ad-contact").slideUp(1000);
    });

});

我认为,(这个)在这里使用,但我不确定。这确实会给我带来启发。

<div class="ad-container">

        <div class="ad-title">title<span class="ad-title-img">(pic)</span></div>
        <div class="ad-description">texttext</div>
        <div class="ad-contact" style="display:none">contact poster</div>
        <div class="ad-sellerinfo" style="display:none">* Verified ***-****<br />
Paid Member</div>
      </div>

I have a page that lists content that are contained in a div with a class ad-container. in that container there is a hidden div with the class ad-contact. on the hover of the ad class i want to animate the display of ad-info. since there are multiple ads on a paticular page, i want only the ad-info of the currently hovered ad-container to slide in. my problem is that since there are more than 10 ads a page when you hover over any of the ads, all of the ads-contact divs slideDown and not the one you are hovering over.

$(document).ready(function() {
    $('.ad-container').hover(
                             function(){
                                 $(".ad-contact").slideDown(1000);
                             },
                             function(){
                                 $(".ad-contact").slideUp(1000);
    });

});

i think, (this) is used here but im not sure. and this would really shed the light for me.

<div class="ad-container">

        <div class="ad-title">title<span class="ad-title-img">(pic)</span></div>
        <div class="ad-description">texttext</div>
        <div class="ad-contact" style="display:none">contact poster</div>
        <div class="ad-sellerinfo" style="display:none">* Verified ***-****<br />
Paid Member</div>
      </div>

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

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

发布评论

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

评论(3

一紙繁鸢 2024-11-02 23:49:08

jQuery 构造函数接受第二个参数,该参数可用于覆盖选择的上下文。像这样的东西应该有效:

$(document).ready(function() {
    $('.ad-container').hover(
                             function(){
                                 $(".ad-contact", this).slideDown(1000);
                             },
                             function(){
                                 $(".ad-contact", this).slideUp(1000);
    });

});

另外,值得一提的是, $(".ad-contact", this) 在内部转换为: $(this).find(".ad-contact" ) 所以你可以使用这个来代替,它可能会稍微快一些。

The jQuery constructor accepts a 2nd parameter which can be used to override the context of the selection. Something like this should work:

$(document).ready(function() {
    $('.ad-container').hover(
                             function(){
                                 $(".ad-contact", this).slideDown(1000);
                             },
                             function(){
                                 $(".ad-contact", this).slideUp(1000);
    });

});

Also, worth mentioning, $(".ad-contact", this) is internally converted into: $(this).find(".ad-contact") so you can use this one instead, it might be slightly faster.

风柔一江水 2024-11-02 23:49:08

您可以使用 .children() 选择器:

$(this).children(".ad-contact").slideDown(1000);

这样您只会如果 ad-contact 类是上下文中对象的子级(当前悬停的对象),则对类 ad-contact 进行操作

请参阅 这里有工作演示

You could use the .children() selector:

$(this).children(".ad-contact").slideDown(1000);

This way you will only act on the class ad-contact if its a child of the object in context (which is the object currently being hovered)

See a working demo here

情徒 2024-11-02 23:49:08

你应该使用事件来处理这个,
首先你需要像
广告容器.hover(函数(事件){
event.target.children();

})

然后 this.show().delay(1000).hide();

当复制粘贴时,提供的代码示例可能不起作用,您必须在编辑器中编写自己的代码。

You should use event to handle this,
First you need like
ad-container.hover(function(event){
event.target.children();

})

and then this.show().delay(1000).hide();

the code sample provide may not work when copy paste you have to write your own code in editor.

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