Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发生更新数据属性的keyup事件后未触发的脚本_Javascript_Jquery - Fatal编程技术网

Javascript 发生更新数据属性的keyup事件后未触发的脚本

Javascript 发生更新数据属性的keyup事件后未触发的脚本,javascript,jquery,Javascript,Jquery,我正在尝试使用keyup函数修改在表单的中具有数据属性的脚本。更改的数据属性为数据成本=”。我已经使用Chrome的inspect element工具验证了keyup事件中的更改是否正确发生 我遇到的问题是,在进行更改时,使用数据属性data cost=“的脚本没有更新。我不确定在更改后如何使脚本触发 每次单击复选框时,我所指的脚本汇总了名为data cost的所有数据属性 这是输入的html: <input data-cost="" value="" type="checkbox" na

我正在尝试使用keyup函数修改在表单的
中具有数据属性的脚本。更改的数据属性为
数据成本=”
。我已经使用Chrome的inspect element工具验证了keyup事件中的更改是否正确发生

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

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

这是输入的html:

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

您是否尝试使用$(this)而不是这个?

这只是一个偶然的机会,因为我对您试图实现的目标有点困惑,但是在最后一次.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部分,我认为您在此处尝试执行的操作没有必要。

能否包括您尝试触发的脚本,该脚本正在读取数据成本属性?谢谢,但它不起作用。问题不在于这个脚本,它确实有效。问题在于我的计算脚本在keyup脚本更改数据后未触发。好的,我将删除它。另外,我将把另一个脚本放在小提琴上,因为它对于这个站点来说太大了。不需要,只需从代码中按名称调用该函数,就像我上面展示的那样。。。不要使用SummingFunctionName()函数,而是使用您的函数名
$(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)
       })     
});