我正在尝试修改一个在表单的 <input>
中具有数据属性的脚本。使用 keyup 功能。更改的数据属性为data-cost=""
。我已使用 Chrome 的检查元素工具验证了 keyup 事件中的更改是否正确发生。
我遇到的问题是使用数据属性 data-cost=""
的脚本进行更改时不会更新。我不确定如何让脚本在更改后触发。
我所指的脚本总结了名为 data-cost
的所有数据属性。每次单击复选框时。
这是输入的 html:
<input data-cost="" value="" type="checkbox" name="f_2[]"/>
这是keyup
脚本,其中还有 blur
和copy
就在其中。
$(function () {
$('#account_balance1').on('keyup blur paste', function() {
var self = this;
setTimeout(function() {
var str = $(self).val();
$("input[data-cost][debt]").attr('data-cost',str.replace(/^\$/, ''));
$("input[data-cost][debt]").attr('debt',str.replace(/^\$/, ''));
}, 0)
})
});
最佳答案
只是在黑暗中一枪,因为我对你想要完成的事情有点困惑,但是在最后一个 .attr 更改之后,你会想要调用正在进行求和的函数,如下所示:
$(function () {
$('#account_balance1').on('keyup blur paste', function() {
var self = this;
setTimeout(function() {
var str = $(self).val();
$("input[data-cost][debt]").attr('data-cost',str.replace(/^\$/, ''));
$("input[data-cost][debt]").attr('debt',str.replace(/^\$/, ''));
YourSummingFunctionName(maybeEvenPassSomething);
}, 0)
})
});
在一个不相关的说明中,一旦一切都按照您想要的方式工作,请尝试删除 setTimeout 部分,我认为这对于您在此处尝试执行的操作没有必要。
关于javascript - 发生更新数据属性的 keyup 事件后脚本不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21057994/