热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript在同一个事件(onblur="")里面可以同时调用2个functiona(){}functionb(){}吗?

JavaScript在同一个事件(onblur里面可以同时调用2个functiona({}functionb({}吗?

Javascript 在同一个事件(Onblur="")里面可以同时调用2个function a(){} function b(){}吗?

可以的,触发onblur事件后,会按顺序执行方法。

关于Javascript中一个事件同时调用两个函数的问题

addOnClick(); //在这里为每一个tr添加了onclick事件。 for(var i=0; i

} 上面的这段代码有问题的(见上面注释) 给你一段为对象添加,删除事件的方法: function AddEventHandler(oTarget,sEventType,fnHandler) { if(oTarget.addEventListener){oTarget.addEventListener(sEventType,fnHandler,false)} else if(oTarget.attachEvent){oTarget.attachEvent("on"+sEventType,fnHandler)} else{oTarget["on"+sEventType]=fnHandler} } function RemoveEventHandler(oTarget,sEventType,fnHandler) { if(oTarget.removeEventListener){oTarget.removeEventListener(sEventType,fnHandler,false)} else if(oTarget.detachEvent){oTarget.detachEvent("on"+sEventType,fnHandler)} else{oTarget["on"+sEventType]=null} } 参数中oTarget为要添加事件的对象(如一个tr),sEventType为要添加的事件类型(如onclick事件的类型为click--用字符串传入),fnHandler为响应改事件的方法(如onclick响应的方法为function1,则传入function1) 增个方法的调用例如: var td1=document.getElementById("td1"); var clickFunction=function(){...} function AddEventHandler(td1,"click",clickFunction);这段代码是兼容IE和FF,如果不需要就利用对象本身的attachEvent和detachEvent方法添加和删除事件,不过只有IE中有这两个方法。

不要直接用object.onclick为对象添加事件。

Javascript中一个事件怎样同时调用两个函数

这里分析Javascript 同时调用同一网页内的多个函数的实现方法,点击按钮后执行多次函数,比如连续弹出多次窗口。具体代码如下:?123456789101112131415161718 运行该程序可弹出alert窗口,关闭后可弹出第二个窗口。

Javascript 对于一个事件,用监听绑定控件还是将事件写到html好呢?

无论是不是事件监听,JS都应该写在外部JS文件中,而不是写到HTML标签中。原因有很多: JS负责行为层,而HTML负责结构层,功能不同,按系统架构的思想应该分离; 写在外部JS文件中更利于维护,而且可以多次迭代开发; 太多的JS代码写在HTML文件中会阻碍DOM树的加载,影响用户体验; 外部JS可以进行压缩,减少带宽占用。

而相比之下JS写在外部JS文件中的弊端,仅仅是需要多建立一次HTTP连接,在合并JS文件后利还是远远大于弊。

针对你问的这个问题,又有其他原因: 当需要将同个事件绑定在多个元素上时,无论是事件委托,抑或是类选择器迭代绑定,都远远好过于在HTML中为单一节点绑定事件。同样的道理,当需要取消绑定时,外部JS的处理也更为方便(HTML中解除绑定需要不断删代码)。 我不清楚你用的是哪种控件,但控件一般都追求简单易行性,因此这个控件一般也是用的事件绑定,而不是事件委托。除非是使用生成的HTML代码,否则一般是将事件绑定写在外部JS中,也好过写在HTML标签内。

综上所述,我建议如果力所能及,一般是手写代码,多使用事件委托而不是事件绑定;如果没这能力,就楼主提供的这两种选择,还是使用监听绑定控件比较好。总之,尽量避免在HTML中掺杂JS。

汇总js事件相关及事件处理模型

js事件是为了实现用户交互,比如当用户鼠标点击或者键盘输入时,浏览器会监听截获并且通知js做出反馈执行相应的函数,实现交互。 js的事件类型有很多,我们先来大概总结一下常用的JS事件 click点击事件、mousedown鼠标按下事件、mousemove鼠标移动事件、mouseup鼠标抬起事件 contextmenu右键出菜单事件、mouseenter/mouseover鼠标进入事件、mouserleave/mouseout鼠标离开事件 可通过事件对象的button属性来区分是左键\滚轮\右键,分别对应值 0 / 1 / 2 DOM3规定:click事件只能监听左键;只能通过mousedown和mouseup来判断鼠标键 keydown某键被按下时、keyup被松开时、keypress按下并且松开时 触发顺序:先 keydown,然后keypress,最后keyup keydown和keypress的区别: input:文本变化时触发 change:聚焦或失去焦点时判断状态是否改变,发生改变是触发change事件 focus:聚焦时触发 blur:失去焦点时触发 利用focus和blur可模拟placeholder scroll:滚动条滚动时 load:页面加载完触发 abort:图像的加载失败 dblclick:双击事件 error:当加载图像和文档时发生错误 resize:窗口或者框架被重新调整大小 select:文本被选中时 reset:点击重置按钮时 submit:点击提交按钮时 接着看如何给DOM元素绑定事件处理函数 兼容性很好 但是根据js的特点,这种赋值的方式肯定会被后面的值覆盖。

因此这种方式绑定事件处理函数规则是:同一个元素同一个事件只能绑定一个处理函数。

等同于第一种写在行间。 IE8及以下不兼容 通过addEventListener绑定的方式,同个元素的同一个事件可以绑定多个处理函数,不会被覆盖。 attachEvent跟addEventListener 基本一致,也是同一个元素的同一个事件可以绑定多个处理函数,不会被覆盖。不同的是attachEvent可以绑定的函数是可以重复的,即即使绑定同一个函数都不会不覆盖。

以上几种事件绑定方式里面的this指向有点区别: 也比较好理解,IE独有的特殊一点指向window,其他都指向dom元素本身 封装一个兼容性的方法,用于绑定事件: 有的时候我们希望解除事件处理函数,那怎么办呢? 其实解除事件处理函数也对应有办法方法: 1. ele.Onxxx= false / ' ' / null 2. ele.removeEventListener(type,fnName,false) 3. ele.attachEvent('on' + type,fnName) 值得注意的是:若干绑定的事件处理函数是匿名函数,则无法解除绑定! 不知道有没有发现,在上面绑定事件处理函数的时候,处理函数有个参数e或者叫event,其实是一个事件对象 事件对象就是处理函数里面的一个参数,说白了就是浏览器打包好的一个对象自动传入到处理函数的第一个参数中。 为了兼容IE一般这么写: e = e || window.event 事件对象会有个属性target,这个target叫事件源对象,记录可事件具体在谁身上触发的那个源头 同样IE上事件源对象是e.srcElement,谷歌两个都有 所以为了兼容IE一般获取事件源对象是这么来写: 当浏览器发展到第四代时(IE4及Netscape4),浏览器开发团队遇到了一个很有意思的问题:页面的哪一部分会拥有某个特定的事件?想象画在一张纸上的一组同心圆。如果把手指放在圆心上,那么手指指向的不是一个圆,而是纸上的所有圆 两家公司的浏览器开发团队在看待浏览器事件方面还是一致的。

如果单击了某个按钮,他们都认为单击事件不仅仅发生在按钮上,甚至也单击了整个页面 但有意思的是,IE和Netscape开发团队居然提出了差不多是完全相反的事件流的概念。IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流。事件冒泡和事件捕获称为两种事件处理模型 IE的事件流叫做事件冒泡(event bubbling), 事件冒泡是结构上(非视觉上)嵌套的函数存在事件冒泡功能,即同一事件自子元素冒泡向父元素(自底向上) [注意]所有现代浏览器都支持事件冒泡 但在具体实现在还是有一些差别。

IE9、Firefox、Chrome、Safari将事件一直冒泡到window对象 而事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前就捕获它 即事件捕获是指: 结构上(非视觉上)嵌套的元素存在事件捕获功能,即同一事件自父元素冒泡向子元素(自顶向下) 注意IE上没有事件捕获,Chrome和新版本的Firefox等都实现了 一个dom元素的一个事件类型绑定的一个处理函数只能存在一种事件模型,要么事件冒泡要么事件捕获。正常的通过addEventListener(type,fn,false)绑定事件时,最后一个参数默认是false表示的是,事件冒泡模型。

如果改成true,立即变成事件捕获模型 如果一个dom元素的一个事件类型绑定了两个处理函数,两个函数的事件处理模型一个是事件冒泡一个是事件捕获,触发顺序是先捕获,后冒泡。 focus、blur、change、submit、reset、select等事件类型不冒泡 可以 利用事件冒泡和事件源对象可以叫事件委托给父元素 利用事件冒泡和事件源对象进行处理 优点: 性能好,不需要循环所有元素一个个绑定事件 灵活,当有其他新的子元素时,不需要重新绑定事件。


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
author-avatar
stong_lxm
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有