如果变量的内容已更改,则执行代码行,否则跳过,我该如何检查
$("#weektime").click(function(e) {
e.preventDefault();
var x = $(this).selectedDays();
$("#weektime1").css("display", "flex");
if(previous value of x != current value of x){
foo(x[0]);
}
});
答案 0 :(得分:0)
包括另一个变量以保存实际变量的原始/先前值。检查先前/原始变量的值是否等于实际变量值。
$(document).ready(function(){
var previous;
$("#weektime").click(function(e) {
e.preventDefault();
var x = $(this).selectedDays();
$("#weektime1").css("display", "flex");
if(previous !== x){
foo(x[0]);
}
previous = x;
});
});
答案 1 :(得分:0)
如果变量的内容更改了
在您的代码中,每次都检索变量x
(currentValue)
var x = $(this).selectedDays();
因此,这不是“变量已更改”的情况,因为它在每次点击事件中都是新的,而是它来自的值
$(this).selectedDays();
当您从DOM元素获取x
值时,建议您也针对该元素存储“原始”值,这样您的代码可以应用于任意数量的元素,而无需创建每次都有新变量。
$(this).data("oldValue");
更新代码:
$("#weektime").click(function(e) {
e.preventDefault();
var oldValue = $(this).data("previous-selected-days") || 0;
var currentValue = $(this).selectedDays();
if (oldValue != currentValue) {
foo(currentValue[0]);
// optionally update the "oldvalue"
$(this).data("previous-selected-days", currentValue);
}
});
如果您使用的是“原始”值而不是“先前的值”,请在DOM中进行设置
<input data-previous-selected-days="123">
或在启动时
$(function() {
// after initialising the control
$("#weektime").data("previous-selected-days", $("#weektime").selectedDays());
});