JQuery .change()方法在附加到动态更改数据的元素时触发

时间:2018-03-26 18:25:58

标签: jquery events onchange

我有一个JQuery滑块。当滑块移动时,一行代码正在改变输入框的val属性。

我试图在输入框的值发生变化时触发函数。但是,它仅在用户通过单击输入框直接更改值时触发。移动滑块什么都不做。

有没有办法获得:

$('#element').change(function(){});

在元素中的数据间接更改时触发?

由于

更新:

这是滑块cod和将值传递给输入框的代码。

$(this).slider({
    range : true,
    max:projectStart,
    min:projectEnd,
    step:86400,
    values:[ end, begin ],
    slide : function(event,ui) {
      //if (ui.values[1]>startLimit) {
          //ui.values[1]=startLimit;
          //return false;
      //}
        var g = (this.id);
        $('#form-' + IDNum + '-StartDate').val(new Date(ui.values[1]*-1000).toDateString());
        $('#form-' + IDNum + '-EndDate').val(new Date(ui.values[0 ]*-1000).toDateString());
    }
});

2 个答案:

答案 0 :(得分:1)

更改值时必须触发更改事件:

$('#form-' + IDNum + '-StartDate').val(new Date(ui.values[1]*-1000).toDateString()).trigger("change");
$('#form-' + IDNum + '-EndDate').val(new Date(ui.values[0 ]*-1000).toDateString()).trigger("change");

$('#form-' + IDNum + '-StartDate').val(new Date(ui.values[1]*-1000).toDateString()).change();
$('#form-' + IDNum + '-EndDate').val(new Date(ui.values[0 ]*-1000).toDateString()).change();

答案 1 :(得分:1)

以编程方式更改任何控件的值时,必须明确触发awk 'NR==FNR{a[$1,$2]=$0;next} ($1,$2) in a {$0=a[$1,$2]}1' file2 file1 A1 1 NA A1 2 NA A1 3 NA A1 4 A A1 5 B A1 6 T A1 7 NA A1 8 NA A1 9 NA A2 1 NA A2 2 NA A2 3 T A2 4 NA 事件。

在jquery中有两种方法可以做到这一点。首先在目标控件上调用change函数,然后调用change()函数,该函数接受事件名称作为参数。

在您的情况下,以下将是有效的。

trigger("change")