劫持onchange事件而不干扰原有功能
我正在编写一个库,我想将其包含在可能已经使用 onchange
事件的不同页面上 - 有没有办法将我的事件附加到 onchange
而不删除原始事件一?
编辑:
窗口对象上的 onchange
不仅仅是单个元素 - onchange
如 url 中的哈希更改等。抱歉,如果我混淆了它们!
I'm writing on a library I want to include on different pages who might already use the onchange
event - is there any way to attach my event to onchange
without removing the original one?
EDIT:
onchange
on the window object not only a single element - onchange
as in a hash change in the url etc. sorry if I confused them!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果我是正确的,听起来您想将新代码注入到现有事件中。如果您想要一个纯 JavaScript 解决方案,这可能会对您有所帮助,这里有一个演示该功能的小提琴。 http://jsfiddle.net/VZCve/1/
编辑: 现在标签已更改,并且您在问题中引用了 jQuery
jQuery 将继续使用 jQuery.change() 绑定新函数.
注意以下内容执行分配的所有更改功能
当您触发选择器中元素的更改事件时,您将收到 3 个警报。
请注意,事件触发的顺序取决于每个函数绑定到元素的顺序。
这是一个简单的小提琴,演示了 jQuery http://jsfiddle.net/VZCve/ 中的功能
If I'm correct it sounds like you want to inject new code into an existing event. This may help you if you want a pure JavaScript solution and here is a fiddle demonstrating the feature. http://jsfiddle.net/VZCve/1/
EDITED: Now that the tags are changed and you are reference jQuery in your Question
jQuery will continue to bind new functions using jQuery.change().
note the following will execute all change functions assigned
When you trigger the change event for the element in the selector you will receive 3 alerts.
Note the order of the events firing is dependent on the order each function was bound to the element.
Here is a simple fiddle demonstrating the functionality in jQuery http://jsfiddle.net/VZCve/
使用 jQuery 的
.change()
函数分配onchange
处理程序不会覆盖现有的onchange
事件(或其他 jQuery 分配的处理程序)。请参阅此处的工作演示:http://jsfiddle.net/nrabinowitz/EyKdm/Using jQuery's
.change()
function to assign anonchange
handler will not override existingonchange
events (or other jQuery-assigned handlers). See a working demonstration here: http://jsfiddle.net/nrabinowitz/EyKdm/较新的浏览器有一个
addEventListener
可以做到这一点,但是dean.edwards 解决方案更好
,与旧版浏览器更
兼容还使用 Costem 事件处理程序来调用函数数组(正确完成后,您可以处理子函数的返回值来决定是否要运行下一个函数,也
event
代码的 couts 未经过测试,请在投反对票之前发表评论
Newer browsers have an
addEventListener
which can do it butdean.edwards solution is better
is more compatible with older browsers
you could also use a costem eventhandeler(s) whitch call array's of functions (done properly you could handle the
return
value of the sub-functions to decide if you want to run the next function, also couts forevent
code not tested please comment before downvote