每个元素的高度如果高于则函数

发布于 2024-12-07 05:45:48 字数 1197 浏览 1 评论 0原文

美好的一天,我正在尝试弄清楚如何做一些小事。

我在页面上有几个元素需要检查高度以及高度是否较高,例如 > 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');
            }
        });      
    }

就这样。

Good day, I'm trying to figure out how to do small thing.

I have several elements on page that needs to checked on height and if height is higher, for example > 100, then I need to call function for them.

So far I came up to this:

var filterHeight = $('div.class').height();

if (filterHeight > 100) {
    $('div.class').css('height', '100px');
    $('div.class').css('overflow-y', 'scroll');
}

Problem with that as you know is that it will add those params to all element because I strictly point to that.

I guess it I will need to do something with .each(), but...

Thank you for your suggestions and help.


Because I can't answer my own question I'm updating here.


I used your solution and change it a little bit, instead adding inline css I added class that fetch css.

So what I did is:

1) When page loads

$('div.class').each(function() {
    if ($(this).height() > 200) {
        $(this).addClass('scroller');
    }
});

.scroller {
height: 200px;
overflow-y: scroll !important;

}

So it checked all blocks with height more than 200px and adds class.

2) After I'm calling for Ajax/JOSN and it gives me new data for those blocks I was in need to check for those elements heigh changes. So on .ajax complete I removed class and check again.

 complete: function () {
        $('.box.refine .middle ul').removeClass('scroller')           
        $('.box.refine .middle ul').each(function() {
            if ($(this).height() > 200) {
                $(this).addClass('scroller');
            }
        });      
    }

Thats all.

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

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

发布评论

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

评论(3

送你一个梦 2024-12-14 05:45:48

您需要查看 jQuery .each()

类似的内容:

$('.check-these').each( function(){
    if ($(this).height() > 100) {
        $(this).css('height', '100px');
        $(this).css('overflow-y', 'scroll');
    }
});

这尚未经过测试,但应该可以让您在正确的轨道上。

You need to look at jQuery .each()

Something like:

$('.check-these').each( function(){
    if ($(this).height() > 100) {
        $(this).css('height', '100px');
        $(this).css('overflow-y', 'scroll');
    }
});

This isn't tested but should put you on the right track.

心如狂蝶 2024-12-14 05:45:48
$('div.class').each(function(){
    if($(this).height() > 100)
    {
        $(this).css({height: "100px", overflow-y: "scroll"});
    }
});
$('div.class').each(function(){
    if($(this).height() > 100)
    {
        $(this).css({height: "100px", overflow-y: "scroll"});
    }
});
随梦而飞# 2024-12-14 05:45:48

循环遍历元素并单独检查每个元素:

$('div.class').each(function() {
    if ($(this).height() > 100) {
        $(this).css('height', '100px').css('overflow-y', 'scroll');
    }
});

但是为什么不首先将其放入 css 中呢?

div.class {
    height: 100px;
    overflow-y: scroll;
}

Loop through the elements and check each individually:

$('div.class').each(function() {
    if ($(this).height() > 100) {
        $(this).css('height', '100px').css('overflow-y', 'scroll');
    }
});

But why not just put that in the css to begin with?

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