javascript – HTML多个事件触发相同的功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – HTML多个事件触发相同的功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1229字,纯文字阅读大概需要2分钟。
内容图文
![javascript – HTML多个事件触发相同的功能](/upload/InfoBanner/zyjiaocheng/818/8a4f0759a4cb4cbaadfc28f66a6d3dda.jpg)
有没有办法让多个事件(例如oninput,onblur)在HTML中触发完全相同的功能?
这是我试图简化的HTML:
<input id="Email" name="Email" type="text" oninput="toggleSuccessIcon(this, isEmail)" onblur="toggleSuccessIcon(this, isEmail)">
我知道这在jQuery中是可能的,如here所述,但由于我有很多不同的输入(例如地址,邮政编码等)需要调用不同的函数(例如toggleSuccessIcon(this,isAddresss),toggleSuccessIcon(this,isPostCode)等等.我想避免在JavaScript中进行冗长而混乱的初始化.但是,如果我在HTML而不是JQuery中这样做是愚蠢的,我会理解使用JQuery的优势的解释.
注意isEmail,isAddress,isPostCode等是一个函数名.
解决方法:
您可以使用辅助函数
// events and args should be of type Array
function addMultipleListeners(element,events,handler,useCapture,args){
if (!(events instanceof Array)){
throw 'addMultipleListeners: '+
'please supply an array of eventstrings '+
'(like ["onblur","oninput"])';
}
//create a wrapper for to be able to use additional arguments
var handlerFn = function(e){
handler.apply(this, args && args instanceof Array ? args : []);
}
for (var i=0;i<events.length;i+=1){
element.addEventListener(events[i],handlerFn,useCapture);
}
}
function handler(e) {
// do things
};
// usage
addMultipleListeners(document.getElementById('Email'),
['oninput','onblur'],handler,false);
内容总结
以上是互联网集市为您收集整理的javascript – HTML多个事件触发相同的功能全部内容,希望文章能够帮你解决javascript – HTML多个事件触发相同的功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。