如果值是相同的更新代码
If values are the same update code
http://liveweave.com/R9jW9x
我有4个文本框,每个文本框代表一个css填充位置(例如顶部填充、左侧填充等(
我正在试验价值检测。我想弄清楚的是,当填充顶部和底部的[A]
是相同的值(以及左侧和右侧的[B]
(时,如何将值设置为padding: A B
;
如果全部相同,则将值设置为padding: A;
如果全部不同,则将值设置为无/空白
和
如果全部不同,或者A&B可能相同,但C和D可能不同,然后将值设置为padding: A B C D;
脚本在加载时运行良好,但当输入值发生更改时,我的结果并没有最终确定。
有人能解释为什么会这样吗?
$(document).ready(function() {
var top = $(".padding-top").val(),
bottom = $(".padding-bottom").val(),
left = $(".padding-left").val(),
right = $(".padding-right").val(),
result = $(".padding-final");
// Update padding code
var Finalize = function() {
if ((top === "") && (right === "") && (bottom === "") && (left === "")) {
// Check if all are empty
result.val("");
} else if ((top === right) && (bottom === left)) {
// If all are same
result.val("padding: " + top + "px;");
} else if ((top === bottom) && (left === right)) {
// Check if first two values are same
result.val("padding: " + top + "px " + left + "px;");
} else {
result.val("padding: " + top + "px " + right + "px " + bottom + "px " + left + "px;");
}
};
// Update padding code when sides change
$(window).on('load keyup change', function() {
Finalize();
});
});
我不会为您编写代码。但是,我希望能把你送到正确的方向:
首先,您应该检查顶部填充、右侧填充、底部填充和左侧填充是否相等。
>>如果它们相等,那么您可以将中间的一个设置为等于任何值(因为它们相等(。
>>如果它们不相等,那么你可以检查顶部和底部是否相等&;左和右是相等的。如果是,则可以将中间数字设置为顶部/底部数字+"+左侧/右侧数字。
>>否则,设置从中间到顶部的数字、右侧数字、底部数字、左侧数字。
编辑
事实上,我对这个想法进行了一些修改,并想出了这个来帮助你。但是,就这样。我再也帮不上忙了!
var top = 2;
var bottom = 2;
var right = 5;
var left = 5;
top == bottom && right == left && top == left ? alert(top)
: top == bottom && right == left ? alert(top + " " + left)
: alert(top + " " + right + " " + bottom + " " + left);
JSFiddle
解决这个问题后,一个更具挑战性的问题是在中间框中键入数字,并相应地更改顶部/右侧/底部/左侧的填充。
我会玩这个
var a=$(".padding-top"), b=..., c=..., d=...;
var test=0,padding;
if (a) test += 1;
if (b&& b!=a) test += 2;
if (c && c!=a) test += 4;
if (d && d!=c && d!=a) test += 8;
if (test== 1) padding = a;
if (test== 2 || test == 3) padding = a + " " + b; // when a+b or just b, we need a and b
if (test>4 && test < 8) padding = a + " " + b + " " + c; // c, a+c or b+c
if (test > 8) padding = a + " " + b + " " + c " " + d;
你也可以做
$(".paddings").on('keyup change', function() {
Finalize();
});
并使用ID填充顶部、左侧、底部和右侧
正如您问题中所述的情况,我制作了以下代码:
$(document).ready(function() {
var top = $(".padding-top").val(),
bottom = $(".padding-bottom").val(),
left = $(".padding-left").val(),
right = $(".padding-right").val(),
result = 'Padding: ';
// Applies new code value
function Finalize() {
if(top === bottom === left === right) {
//If all are same
result += top + ' ';
} else {
if ((top === bottom) && (left === right)) {
// Check if first two values are same
result += top + ' ' + left + ' ';
} else {
result += left + ' ' + right + ' ' + top + ' ' + bottom + ' ';
}
}
result += 'Px';
$('#middle-input').val(result);
}
Finalize();
$(".padding-inputs").on('keyup change', function() {
Finalize();
});
});
相关文章:
- 在Scroll上更新CSS代码:简化它就不会了'不要使用JQuery和最简单的Javascript
- HTML文件中的智能Javascript建议在Visual Studio代码更新后没有日志程序工作
- 在分析云代码中调用更新
- 如何通过代码更新github中托管的文件
- ASP:代码隐藏的字段变量在从更新面板中的服务器返回时丢失值
- 通过代码+敲除更新数组中的值
- 如何使用表单输入更新代码
- .data()无法更新Chrome检查器中显示的代码
- 从一个正在运行的PHP代码中,了解如何更新DIV标记中的状态
- 正在将代码库中的C#变量更新到asp.net
- 将jquery代码从1.4.2分钟更新为1.10.2分钟
- Meteor Update集合-未捕获错误:不允许.不受信任的代码只能通过ID更新文档.[403]
- 使用 HTML + Javascript 的多项选择测验:回复:使用数组对象和属性更新分数(帮助分析代码)
- Polymer:当数组中的对象被外部代码修改时,更新dom重复元素
- 删除 JavaScript 中的重复代码;更新对象传递到函数中
- 解析云代码部署失败,并显示消息“更新失败,出现内部错误”
- 更新代码时保留变量
- 如何更新代码以避免“;未定义的值“;
- 如果值是相同的更新代码
- 由于将比较方法添加到数组原型而导致测试失败.如何更新代码或测试?