假设我有一个 JQuery 对象,el
它选择了一个元素。el.trigger("change")
如果选择的元素是DIV ,调用是否合法、安全、合理?其他元素类型呢?就此而言,我可以打电话el.change()
吗?
.change()的JQuery 文档说:
当元素的值改变时,change 事件被发送到元素。此事件仅限于 <input> 元素、<textarea> 框和 <select> 元素。
我不清楚这里的“有限”是什么意思。它可能指的是只有这三种元素类型会自动产生这些事件,但它可能意味着其他元素是不允许的。
从经验上看,Chrome v28 似乎允许它,但我想知道我是否可以期望它能够正常工作。
目标
我有一个伪控件,它由一组包含在 div 中的按钮和跨度组成。控件的每个实例都维护和管理一个值,该值通过单击控件的按钮进行修改。当值发生变化时,我需要从 div 中发送一个事件,以便页面的其余部分可以做出反应。我不想监听控件外部的点击事件,因为这会将周围的代码耦合到控件的内部,并不是所有的点击都会改变值。
我可以创建一个新的事件名称,但内置的“更改”事件在概念上似乎是正确的,所以如果可以的话,我宁愿使用它。作为额外的奖励,我的页面已经是一个“更改”处理程序,它用正确的行为绑定了正确的位置(因为我在页面上也有一些输入和选择控件)。
我需要支持 IE8 及更高版本,以防答案因浏览器品牌和版本而异。