【发布时间】:2011-11-26 17:33:49
【问题描述】:
美好的一天,我正在想办法做些小事。
我在页面上有几个元素需要检查高度,如果高度较高,例如 > 100,那么我需要为它们调用函数。
到目前为止,我想出了这个:
var filterHeight = $('div.class').height();
if (filterHeight > 100) {
$('div.class').css('height', '100px');
$('div.class').css('overflow-y', 'scroll');
}
你知道的问题是它会将这些参数添加到所有元素,因为我严格指出这一点。
我想我需要对 .each() 做一些事情,但是...
感谢您的建议和帮助。
因为我无法回答自己的问题,所以在这里更新。
我使用了您的解决方案并对其进行了一些更改,而不是添加内联 css 我添加了获取 css 的类。
所以我做的是:
1) 页面加载时
$('div.class').each(function() {
if ($(this).height() > 200) {
$(this).addClass('scroller');
}
});
.scroller {
height: 200px;
overflow-y: scroll !important;
}
所以它检查了所有高度超过 200px 的块并添加了类。
2) 在我调用 Ajax/JOSN 之后,它为我需要检查那些元素高度变化的那些块提供了新数据。所以在 .ajax 完成后,我删除了类并再次检查。
complete: function () {
$('.box.refine .middle ul').removeClass('scroller')
$('.box.refine .middle ul').each(function() {
if ($(this).height() > 200) {
$(this).addClass('scroller');
}
});
}
就是这样。
【问题讨论】:
标签: javascript jquery if-statement each