首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Jquery:如果任何.siblings().position().top等于$(.siblings).position().top

Jquery:如果任何.siblings().position().top等于$(.siblings).position().top
EN

Stack Overflow用户
提问于 2014-08-13 11:45:47
回答 1查看 272关注 0票数 0

我有以下html:

代码语言:javascript
代码运行次数:0
运行
复制
<div class="container" id="1"></div>
<div class="container" id="2"></div>
<div class="container" id="3"></div>

<div class="details" id="1"></div>
<div class="details" id="2"></div>
<div class="details" id="3"></div>

和jQuery:

代码语言:javascript
代码运行次数:0
运行
复制
$(document).ready(function () {
        $('.container').each(function () {
            $(this).click(function () {
                var elem = $(this),
                    containerId = elem.attr('id'),
                    activeId = $(containerId + '.active');
                $(this).toggleClass('active').siblings().removeClass('active');
                $('#details-' + containerId).toggleClass('visible').siblings().removeClass('visible');
            });
    });
});

我尝试做的是查看是否有其他.container div的顶部位置与活动容器(即我刚才单击的容器)相同。如果它们不具有相同的顶部位置,那么我将向下滑动它们并以全宽显示详细信息。

所以我想像这样的东西应该可以工作-$(这)表示活动的.container分区:

代码语言:javascript
代码运行次数:0
运行
复制
if($(this).siblings().position().top == $(this).position().top) {
// add some class to EACH sibling that has equal top position
}

但我不是完全确定该怎么做。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2014-08-13 11:48:15

你需要像这样的东西

代码语言:javascript
代码运行次数:0
运行
复制
var top = $(this).position().top;

var $sibs = $(this).siblings().filter(function(){
    return $(this).position().top == top
})
//do something with the matching siblings refferred by $sibs

$(this).siblings().position().top将返回第一个同级元素的top值,不会检查其余同级元素的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25277693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档