我有一个选择下拉列表,使用jquery .val()以编程方式初始化。有一个与此元素关联的更改事件,需要以不同的方式工作,具体取决于用户是更改值还是通过$ select.val()以编程方式更改。实现这一目标的最佳方法是什么?
$select.change(function() {
// always execute:
...
// don't execute on .val(): [how to check this?]
...
});
答案 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 强>