【发布时间】:2010-01-13 20:15:33
【问题描述】:
有没有办法轻松覆盖 jQuery 的 val() 函数?
我想覆盖它的原因是我想在每次为元素设置值时添加一些处理。而且我不想制作另一个自定义值设置器,例如myVal()。
【问题讨论】:
-
我假设 .change() 事件在这里对你不起作用?
-
@Mark :当我通过 $('#foo').val('someValue') 设置元素的值时,不会触发 .change() 事件。只有当用户在 GUI/浏览器上更改值时才会触发它。
-
$('#foo').val('someValue').trigger('change');可能用于将触发器链接在那里......
-
@Mark:因为我需要在第一次将值存储到元素中时在任何地方进行这种特殊处理,所以我不想在每个元素中添加额外的 .trigger() 代码我使用 .val() 的地方。此外,如果我使用 .trigger() 那么这将无意中触发我不想运行的更改事件,该事件旨在处理来自 GUI 而不是代码本身的更改事件。覆盖 .val() CMS 发布的方式正是我需要做的:-)
标签: jquery jquery-plugins