下拉列表预设闭合高度打破动态高度变量
dropdown list with preset closed height breaking dynamic height variable
为什么呢?
我试图得到一个列表的框,所有的可变高度,能够隐藏/显示的内容与。animate()在一个函数。我试图得到与。height()的内容框的高度,它的工作…然而,我还需要将方框的高度设置为0px,这样页面就可以加载,并且方框一开始就关闭。
问题出现在我对变量不好。我可以让事情工作,但一旦我设置所有的盒子开始在0px(全局)…我在Click to find content size上设置的变量找到了我为初始状态设置的0px的大小…因此,盒子可以关闭,但没有重新打开的高度。
如果您注释掉JSFIDDLE中的第一行,如下所示,您可以看到它正在工作:
//$(".className").find("p").not(".trigger").css({height: '0px'});
顺便说一句:我知道我用$(this).parent().bla().bla().bla() .bla()创建选择器的方式;不是选择这些项目的最有效的方式,但我的网站实际代码更复杂,我想保持相似。谢谢!
有一种方法:
/** Set up an object. **/
var allElementHeightsOriginally = {
heights: {}
};
var triggerElementHeight = $(".trigger").height();
/** Add the original heights to the object, along with the element indices. **/
$(".className").each(function (index, element) {
allElementHeightsOriginally.heights[index] = {
index: index,
original: ($(element).height()-triggerElementHeight)
};
});
/** Your click event. **/
$(".trigger").click(function () {
var indexClicked = $(".trigger").index(this);
var theElement = $(this).parent().find("p").not(".trigger");
$.each(allElementHeightsOriginally.heights, function (theKey, valueArray){
if(indexClicked == theKey){
var height = valueArray.original;
$selected = $(theElement);
if ($(theElement).hasClass('toggle')) {
$selected.stop().animate({height:"0px"});
$(theElement).removeClass('toggle');
} else {
$selected.stop().animate({height: height + 'px' });
$(theElement).addClass('toggle');
}
}
});
});
/** Collapse by default. **/
$("p").not(".trigger").css({height: '0px'});
我不确定上面的代码是否遵循最佳实践,但它确实有效!
相关文章:
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- javascript skrollr基于动态内容更新窗口高度
- window.open根据动态内容自动调整高度和宽度
- JQuery mCustomScrollbar动态高度
- 动态潜水高度jQuery.Load()不工作
- 使用setIntervel()以动态高度偏移具有固定页眉的页面上的内容
- 如何根据主体高度动态更改元素边距顶部
- 动态高度/最大高度和溢流
- 根据页眉和页脚高度更改高度的动态内容
- 如何在浏览器宽度/高度变化时动态调整图像网格的大小
- 动态增加 iframe 高度
- 在javascript中动态修改掩码高度
- fullPage.js在使用scrollOverflow时未检测到动态生成内容的高度
- 如何在svg高度动态变化时使用viewbox
- 根据屏幕高度动态填充框
- 如何根据元素高度动态调整iframe高度
- Div是根据窗口高度动态调整大小的,但在HTML中添加更多内容时失败
- 根据高度动态添加内容
- 如何增加谷歌多边形对话框的高度动态
- Iframe的高度[动态]每2秒