javascript - 发生更新数据属性的 keyup 事件后脚本不触发

标签 javascript jquery

我正在尝试修改一个在表单的 <input> 中具有数据属性的脚本。使用 keyup 功能。更改的数据属性为data-cost="" 。我已使用 Chrome 的检查元素工具验证了 keyup 事件中的更改是否正确发生。

我遇到的问题是使用数据属性 data-cost="" 的脚本进行更改时不会更新。我不确定如何让脚本在更改后触发。

我所指的脚本总结了名为 data-cost 的所有数据属性。每次单击复选框时。

这是输入的 html:

<input data-cost="" value="" type="checkbox" name="f_2[]"/> 

这是keyup脚本,其中还有 blurcopy就在其中。

$(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/

相关文章:

javascript - Tablesorter 无法在 updateComplete 上应用搜索条件

javascript - 无法让 Flexslider 插件使用 manualControls?

javascript - 在 IE 中使用 JQuery UI 切换时列会调整大小

javascript - 用于比较和保存元素的 jQuery 多列表解决方案

javascript - 为什么我的 jQuery 点击函数没有触发?

javascript - 使用javascript在屏幕中间显示弹出窗口

jquery - 如何在不移动其他图片的情况下缩放此画廊?

javascript - 在 Jquerymobile 中获取 slider 的值?

javascript - 使用带有多个过滤器的比较器的 angularjs 过滤器

javascript - 使用 Jquery 向 HTML 表添加记录