防止通过.val()触发jQuery更改事件

时间:2014-05-13 19:11:27

标签: jquery

我有一个选择下拉列表,使用jquery .val()以编程方式初始化。有一个与此元素关联的更改事件,需要以不同的方式工作,具体取决于用户是更改值还是通过$ select.val()以编程方式更改。实现这一目标的最佳方法是什么?

$select.change(function() {
    // always execute:
    ...
    // don't execute on .val(): [how to check this?]
    ...
});

1 个答案:

答案 0 :(得分:1)

当您使用jquery val 函数设置值时,您始终可以在DOM元素上使用标准 addEventListener 函数不会

document.getElementById('myOption').addEventListener('change', function(){
    alert('value changed by user to: ' + this.value);
});

现在即使您使用jquery更改值$('#myOption').val(3),它也不会触发事件。

<强> FIDDLE