我正在尝试将数据属性的高度应用到div上,这仅适用于第一个,因为第二个div从第一个元素获得相同的高度。有没有人知道解决这个问题的方法我是否需要将其作为每个函数运行?例如?
https://jsfiddle.net/y45rgsza/
var $elements = {
button: $('.js-show-more'),
container: $('.js-readmore-container'),
blockheight: $('.js-block-height')
};
var maxheight = $elements.container.height();
var height = $elements.blockheight.data('height');
if (maxheight > 5) {
$elements.blockheight.css("height", height);
}
答案 0 :(得分:1)
您可以像这样使用.css(prop, callback)
:
$elements.blockheight.css("height", function(){
return $(this).data('height') //return the current elements data attribute value.
});
答案 1 :(得分:0)
使用:
$elements.blockheight.height(height);
答案 2 :(得分:0)
您需要迭代并设置
var $elements = {
button: $('.js-show-more'),
container: $('.js-readmore-container')
};
$elements.container.height(function (i, height) {
var bheight = $(this).find('.js-block-height').data('height');
return bheight < height ? bheight : height
})
演示:Fiddle
答案 3 :(得分:0)
答案 4 :(得分:0)
使用每个函数检查每个容器以获取数据属性并应用于blockheight内。
这是新的工作代码,
var $elements = {
button: $('.js-show-more'),
container: $('.js-readmore-container'),
blockheight: $('.js-block-height')};
$($elements.container).each(function(){
var maxheight = $(this).height();
var height = $(this).find($elements.blockheight).data('height');
if (maxheight > 5) {
$(this).find($elements.blockheight).css("height", height);
}});