javascript – 我可以在任意HTML元素类型上触发JQuery“更改”事件吗?

假设我有一个选择了元素的
JQuery对象el.如果所选元素是DIV,调用el.trigger(“更改”)是否合法,安全且合理?其他元素类型怎么样?就此而言,我可以调用el.change()吗?

JQuery documentation for .change()说:

The change event is sent to an element when its value changes. This event is limited to <input> elements, <textarea> boxes and <select> elements.

我不清楚“限制”在这里意味着什么.它可能指的是这些是自动生成这些事件的唯一三种元素类型,但它可能意味着不允许其他元素.

根据经验,Chrome v28似乎允许它,但我想知道我是否可以期望它能够正常工作.

目标

我有一个伪控件,它由一组包含在div中的按钮和跨度组成.控件的每个实例都维护和管理一个值,通过单击控件的按钮进行修改.当值发生变化时,我需要从div发送一个事件,以便页面的其余部分能够做出反应.我不想听控制之外的点击事件,因为它将周围的代码耦合到控件的内部,而不是所有点击都改变了值.

我可以创建一个新的事件名称,但内置的“更改”事件看起来在概念上是正确的,所以如果可以,我宁愿使用它.作为一个额外的好处,我的页面已经是一个“更改”处理程序绑定正确的行为(因为我在页面上也有一些输入和选择控件).

我需要支持IE8及以上,如果答案因浏览器品牌和版本而异.

最佳答案 没有任何限制,您可以在任何HTML元素上触发您喜欢的任何事件类型.

jQuery文档只是告诉您只在< input>,< textarea>上自动触发更改.和< select>

点赞