【问题标题】:Preventing jQuery change event from triggering via .val()防止通过 .val() 触发 jQuery 更改事件
【发布时间】:2014-05-13 19:11:27
【问题描述】:

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

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

【问题讨论】:

  • 请出示您的代码。
  • 你能提供一些代码吗?你试过什么吗?
  • 作为建议,您的标题似乎与您的场景不匹配(听起来像是XY problem)。也许像 Preventing jQuery change event from triggering via .val() 之类的,或者类似的东西?

标签: jquery


【解决方案1】:

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

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

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

FIDDLE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多