javascript - 在第一次为 let 变量赋值后,它的值没有改变#JavaScript
问题描述
在单击弹出窗口打开后,我已经创建了单击事件。在那个弹出窗口中,他们是一个声明,其中我动态更改了enable和disable关键字,因此,当我第一次运行服务器时,该值被分配给let变量,但在单击同一个按钮后,变量的值是不会在弹出框中得到更改。
HTML
<div class="modal" id="action-confirm-box" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
@*<h5 class="modal-title">%MODALNAME%</h5>*@
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Do you want to %STATUS% the rule with Options ?</p>
</div>
<div class="modal-footer">
<button type="button" id="continue-confirm-box" class="btn btn-primary">Continue</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
JavaScript
const changeStatusText = function (value) {
let statusText = $('#action-confirm-box').find('div.modal-body').html();
if (value) {
console.log("Inside IF");
statusText = statusText.replace('%STATUS%', 'disable');
}
else {
console.log("Inside else");
statusText = statusText.replace('%STATUS%', 'enable');
}
$('#action-confirm-box').find('div.modal-body').html(statusText);
};
因此,在此代码运行时,我们单击按钮,第一次打开弹出窗口并分配%STATUS%值,但在第二次单击时,If 和 else 语句的%STATUS%值保持不变。我没有明白这里有什么问题
const operateEvents = {
'click .btn-icon': function (e, value, row, index) {
console.log("operateEvents ", row);
changeStatusText(row.enabled);
$('#action-confirm-box').modal('show');
$('#continue-confirm-box').click(() => changeStatus(row, index));
}
};
解决方案
在html中添加一个元素来更新内容
<div class="modal" id="action-confirm-box" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
@*<h5 class="modal-title">%MODALNAME%</h5>*@
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Do you want to <span class="status_text">%STATUS%</span> the rule with Options ?</p>
</div>
<div class="modal-footer">
<button type="button" id="continue-confirm-box" class="btn btn-primary">Continue</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
然后通过 javascript 更新该元素的内容
const changeStatusText = function (value) {
//Use the ternary operator to toggle the text
$('#action-confirm-box .status_text').html(value ? "disable" : "enable");
}
推荐阅读
- java - 是否可以在谷歌地图上确定最近的街道是什么?
- typescript - Apollo Server 中的嵌套查询
- django - SagePay 商户会话密钥和卡标识符是否可以向最终用户公开?
- apache-spark - 如何使用 Spark 写入远程 Elastic Search 节点?
- python - 在此特定代码中使用字符串匹配和任意参数
- php - 使用 Php Guzzle 的异步请求无法异步工作
- c++ - 在另一个模板类中定义的模板类的静态对象。在 linux 中运行会给出专门的成员 'requires 'template<>' 语法
- scala - 使用 Scala 在 Spark 中以列值为条件的广播 Map 上执行查找
- python - PySAL OLS 模型:AttributeError:“OLS”对象没有属性“预测”
- arduino-ide - 使用 Arduino/ESP8266 进行 AC LED 调光——如何解决闪烁问题?