我正在尝试根据页面上存在的min-width
的数量以及180px的填充动态计算body
的{{1}}。这是我正在使用的代码:
div.columns
有关为什么不能正常工作的任何线索?
答案 0 :(得分:6)
这是由于columns
变量的范围。您需要将其设置为全局,或将其分配给函数的结果,后者更可取。试试这个:
function countColumns() {
return $('.column').size();
}
$('body').css('min-width', (parseInt(countColumns()) * 120) + 180 + 'px') );
注意,parseInt
是多余的,因为size()
方法将始终返回整数。
答案 1 :(得分:1)
由于columns
变量是在函数内部定义的,因此无法在其外部访问。您应该在外部或全局范围内定义它。试试这个。
var columns;
function countColumns() {
columns = $('.column').size();
document.write(columns)
}
$('body').css('min-width', ((parseInt(columns) * 120) + 180) + 'px') );
或者你甚至可以调用将返回列数的函数。这样您就不必维护变量。同样在countColumns
函数中,我使用jQuery对象的lenght
属性,它给出了相同的结果,也避免了一个函数调用。试试这个
function countColumns() {
return $('.column').length;
}
$('body').css('min-width', ((countColumns * 120) + 180) + 'px') );
答案 2 :(得分:0)
您要在函数范围内设置列变量,请尝试使用
var columns
function countColumns() {
columns = $('.column').size();
document.write(columns)
}
$('body').css('min-width', (parseInt(columns) * 120) + 180 + 'px') );
答案 3 :(得分:0)
这应该有效
$(document).ready(function() {
var minWidth = ($('.column').length * 120) + 180);
$('body').css('min-width', (minWidth + 'px') );
});
从未见过有人在min-width
使用<body>
:P