我有以下html:
<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:
$(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分区:
if($(this).siblings().position().top == $(this).position().top) {
// add some class to EACH sibling that has equal top position
}
但我不是完全确定该怎么做。任何帮助都将不胜感激!
发布于 2014-08-13 11:48:15
你需要像这样的东西
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
值,不会检查其余同级元素的值。
https://stackoverflow.com/questions/25277693
复制相似问题