我有一段代码,用于计算某些子项的宽度,而不是在EVERY函数中声明parentWidth和其他变量。我正在尝试创建要重用的全局变量..但是,它不是工作
以下是我的代码的一部分:
$(document).ready(function(){
parentWidth = $(this).parent().width(); // parent width in pixels
margin = parentWidth/100; // pixel equivalent of a 1% margin
border = 6; // 6px total border for each input field
$(".element.twoinone input").each(function() {
$(this).css( 'width',
(((parentWidth - (margin * 2)) - (border * 2)) / 2)
+ 'px' );
});
});
'every'函数(我有多个函数)不能访问parentWidth,margin和border变量。我尝试过使用live(),livequery(),等等。但是,没有骰子。我知道它可能是一个简单的东西,这个菜鸟可以俯瞰..所以任何帮助都非常感谢!! 谢谢! 另外,如果你有任何关于根据父容器宽度计算宽度百分比的输入,并考虑每个元素边界,边距和数量,...我都是耳朵:D
更新 不是这个: $(文件)。就绪(函数(){
parentWidth = $(this).parent().width();
$(".element.twoinone input").each(function() {
$(this).css( 'width',
(((parentWidth - (margin * 2)) - (border * 2)) / 2)
+ 'px' );
});
});
与此相同:
(文档)$。就绪(函数(){
$(".element.twoinone input").each(function() {
$(this).css( 'width',
((( $(this).parent().width() - (margin * 2)) - (border * 2)) / 2)
+ 'px' );
});
});
答案 0 :(得分:2)
当你宣布这个时:
parentWidth = $(this).parent().width();
您没有获得该元素的父的宽度(<input>
),而document
使用this
,因为这是上下文你需要获得函数内部的宽度,无论是在每个内部还是作为插件,但不是像这样“全局”。
答案 1 :(得分:0)
parentWidth
不是document.ready
函数中存在的全局变量,但它不是任何函数的全局变量。
除非您在document.ready
之前声明此变量:
像这样:
var parentWidth;
$(document).ready(function(){
parentWidth = $(this).parent().width();
....
其他2个变量也是如此。
答案 2 :(得分:0)
尝试将变量放在$(document).ready()