从函数更新全局变量
Update a global variable from a function
我有 2 个变量,它们连接成另一个变量。 单击按钮时,变量的值应更新,串联的变量也应更新,但全局变量将保留原始值。
<button class="filter period" data-sort-value="number" data-period="ltd">LTD</button>
<button class="filter period" data-sort-value="number" data-period="r3">R+3</button>
<button class="filter period" data-sort-value="number" data-period="r12">R+12</button>
<button class="filter period" data-sort-value="number" data-period="rtodec">RTODEC</button>
<script>
var region = "ww";
var period = "ltd";
var finalFilter = "data-" + region + "-" + period;
$('button.filter').on('click', function () {
if ( $(this).hasClass("period") ) {
period = $(this).attr('data-period');
console.log(finalFilter);
console.log(period);
updatedFinalFilter();
}
});
</script>
是的,我希望当其中一个周期或区域更改值时自动更新 finalFilter
实现这一目标的唯一方法是实际更新它。 JavaScript 中的变量不会根据您第一次设置它们的表达式自动更新。 后:
var finalFilter = "data-" + region + "-" + period;
已经运行,finalFilter
纯粹设置为"data-ww-ltd"
- 它不知道或链接到region
或period
.
所以在调用 updatedFinalFilter()
之前,你必须重新计算表达式:
var region = "ww";
var period = "ltd";
var finalFilter = "data-" + region + "-" + period;
$('button.filter').on('click', function () {
if ( $(this).hasClass("period") ) {
period = $(this).attr('data-period');
finalFilter = "data-" + region + "-" + period;
console.log(finalFilter);
console.log(period);
updatedFinalFilter();
}
});
请注意,当我们从函数中更新它时,缺少var
- 您不想在那里重新声明它,否则它将成为该函数本地范围的不同finalFilter
。
相关文章:
- 更新后,父视图未在 Electron 中的
上设置全局变量 - 用javascript更新事件函数中的全局变量
- 从函数更新全局变量
- 全局变量在 javascript 中未更新
- 与javascript全局变量范围和更新混淆
- 无法多次更新 jQuery 中 Ajax 调用的全局变量
- 在 NodeJS 中使用和更新全局变量是否安全?
- Javascript 中的全局变量未更新
- 更新 jQuery 中的全局变量
- 在 Javascript 中本地更新全局变量
- AJAX 请求无法读取更新的会话/全局变量
- 在 JavaScript 中回溯,无法更新全局变量
- 节点.JS全局变量未保持更新
- 更新全局变量javascript/html
- JavaScript更新全局变量
- 通过回调更新全局变量
- 为什么我的Javascript全局变量只更新一次?jQuery最后一个子选择器错误
- 在javascript中更新全局变量
- JavaScript全局变量未更新
- 如何在WSO2ESB中创建全局变量-必须是可更新的