javascript开发: JavaScript事件绑定的方法

微信小程序开发中常见事件绑定错误排查指南:以 ‘tap‘ 事件方法未定义为例 本文详细解析了微信小程序开发中常见的'tap'事件绑定错误,特别是方法未定义问题的排查方法。从wxml中的隐藏字符陷阱到逻辑层方法定义的位置错误,再到开发工具配置的影响,提供了全面的解决方案和最佳实践,帮助开发者快速定位和修复事件绑定问题。 阅读详情

事件使得客户端的 JavaScript 有机会被激活,并得以运行。在一个 Web 页面装载之后,运行脚本的唯一方式,就是响应系统或者用户的动作。虽然从第一个支持脚本编程的浏览器面世以来,简单的事件被实现为 JavaScript 的一部分;但是大多数最近出现的浏览器都实现了强壮的事件模型,使脚本可以更加智能地处理事件。现在的问题在于:为了支持各种浏览器,您必须和多个先进的 事件模型做斗争,准确地说,是三个。

   这三个事件模型分别和下面的文档对象模型(Document Object Model,即 DOM)三巨头结盟:Netscape Navigator 4 (NN4),Macintosh 和 Windows 系统的 Internet Explorer 4 及其更新版本(IE4+),以及在 Safari 中得到实现的 W3C DOM。尽管这些模型之间有些地方存在一些本质的差别,但是在一些简易的 JavaScript 的帮助下,它们都可以同时适用于同一个文档。本文主要着眼于相互冲突的事件模型中的两个关键方面:

    ·把一个事件和 HTML 元素绑定起来的方法。 
    ·在事件被触发后如何对之进行处理。


事件绑定的方法


   事件绑定是指构造一个响应系统或者用户动作的 HTML 元素的过程。在不同的浏览器版本中,有不少于五种事件绑定技术。下面我们快速地介绍一下这些技术。

事件绑定方法I:绑定元素属性
最简单和向后兼容性最好的事件绑定方法是把事件绑定到元素标识的属性。事件属性名称由事件类型外加一个“on”前缀构成。尽管HTML属性并不是大小写敏 感的,人们还是定义了一个规则,规定事件类型的每一个“词”的首字母大写,比如 onClick 和 onMouseOver。这些属性也被称为事件处理器,因为它们指示了元素如何“处理”特定的事件类型。

正确的事件处理器属性的值在形式上是被引号包含的 JavaScript 语句。最常见的值是一条调用某个脚本函数的语句,而被调用的函数在位于

文档前部的 <SCRIPT> 标识中定义--该标识通常位于 <HEAD> 部分。举例来说,下面的函数:

function myFunc() {
      // script statements here
}
可以被定义为一个按键控件的事件处理器,按键的定义如下:

<INPUT TYPE="button" NAME="myButton" VALUE="Click Here" 
onClick="myFunc()">
把事件绑定到元素属性上有一个优点,即可以支持开发者把参数传递给事件处理器函数。接收事件的元素的引用则由一个特殊的参数值--this

关键字来传递。下面的代码演示一个函数如何借助传入参数,把任意数目的文本框的内容转化为大写:

<SCRIPT LANGUAGE="JavaScript">
function convertToUpper(textbox) {
      textbox.value = textbox.value.toUpperCase();
}
</SCRIPT>
...
<FORM ....>
<INPUT TYPE="text" NAME="first_name" onChange="convertToUpper(this)"&gt
<INPUT TYPE="text" NAME="last_name" onChange="convertToUpper(this)"&gt
...
</FORM>


事件绑定方法II:绑定对象属性
对于 NN3+ 和 IE4+ 这两类浏览器,脚本编程人员可以以脚本语句的方式把事件绑定到对象上,而不是绑定到元素标识的属性上。每一个负责事件响应的元素对象都为自己能够识别的事 件设置了相应的属性。对象属性名称是元素标识属性的小写形式,比如 onmouseover。NN4 还接受 interCap(即首字小写,之后的每一个词的首字大写)版本的属性名,但是考虑到跨浏览器的兼容性,所有字母都是小写的名称会更安全一些。

当您把一个函数的引用赋值给一个事件属性的时候,就发生了绑定。函数的引用是指函数的名称,但是不带函数定义中的括号。因此,如果要

为一个名为 myButton 的按键的点击事件(click)进行绑定,使之激活一个定义为 myFunc() 的函数,则其赋值语句如下所示:

document.forms[0].myButton.onclick = myFunc;
您应该注意一点:在事件触发的时候,没有办法向事件函数传递参数。本文在稍候对事件处理过程的讨论中还会回顾这个问题。

事件绑定方法III: 绑定 IE4+<SCRIPT FOR> 标识
在 IE4+ 中,Microsoft 对 <SCRIPT> 标识实现了自己的扩展,可以将它包含的脚本语句和某个元素的一个事件类型进行绑定。支持这个绑定的标识属性(还没有被 W3C 批准为 HTML 的一部分)是 FOR 和 EVENT。

FOR 属性的值必须是您为元素的 ID 属性分配的唯一标识符。然后,您必须把事件的名称(onmouseover,onclick,等等)分配给 EVENT 属性。在上面的按键实例的基础上,我们必须对按键标识进行修改,使之包含一个 ID 属性:

<INPUT TYPE="button" NAME="myButton" ID="button1" VALUE="Click Here">
脚本语句并不在函数中,而是在 <SCRIPT> 标识中,如下所示:

<SCRIPT FOR="button1" EVENT="onclick">
// script statements here
</SCRIPT>
当然,标识中的语句可以调用页面上其它地方定义的任何函数(或者从.js文件中导入的函数)。然而,这种绑定方式意味着您必须为每一个元素和每一个事件创建一个 <SCRIPT FOR> 标识。

您还必须小心,只能把这种绑定方法部署在仅供 IE4+ 浏览器浏览的页面。其它任何支持脚本编程而又没有实现这个特殊的 <SCRIPT> 标识的浏览器(包括 IE3),都将把它作为常规的 <SCRIPT> 标识来处理,并试图在页面装载的时候执行这些脚本语句--这不可避免地引起脚本错误。

事件绑定方法IV:使用 IE5/Windows 的 attachEvent() 方法
早在 W3C DOM 工作组磨砺出标准的事件模型之前,attachEvent() 方法已经被实现了,并且可被用于 Windows 版的 IE5 或更新版本的浏览器上的每一个 HTML 元素。

attachEvent() 方法的用法如下所示:

elemObject.attachEvent("eventName", functionReference);
eventName 参数的值是表示事件名称的字符串,比如 onmousedown。functionReference 参数是一个不带括号的函数引用,和早些时候描述的事件属性方法中一样。因此对于上面例子的按键对象,可以通过如下的脚本语句把函数绑定到按键的 click 事件:

document.getElementById("button1").attachEvent("onclick", myFunc);
由于 attachEvent() 方法必须严格工作在 IE5+/Windows 的环境中,所以您既可以使用 W3C DOM 的元素引用方式(如上文所示),也可以使用 IE4+ 的引用方式:

document.all.button1.attachEvent("onclick", myFunc);
这个方法有一个值得注意的地方:您不能在元素被载入浏览器之前执行这个语句。该对象的引用在相应的 HTML 按键元素被浏览器创建之前,都是无效的。因此,要让这样的绑定语句或者在页面的底部运行,或者在 BODY 元素的 onLoad 事件处理器调用的函数中运行。

事件绑定方法V:使用 W3C DOM 的 addEventListener() 方法
Safari 使用的是 W3C DOM 级别2定义的事件绑定机制,这个机制和 IE5/Windows 的 attachEvent() 方法很类似,但是有自己的语法。W3C DOM 规范为 DOM 层次中的每一个结点都定义了一个 addEventListener() 方法。HTML 元素是 DOM 结点中的一类,在一对元素标识内部的文本结点也是一个结点,也能够接收事件。这一点在 NN6 事件处理过程中经常得到体现,在本文的后面部分您将会看到。

addEventListener() 方法的语法如下所示:

nodeReference.addEventListener("eventType", listenerReference, captureFlag);
用 W3C DOM 规范中的行话来说,addEventListener() 方法为指定的结点注册了一个事件,表示该结点希望处理相应的事件。这个方法的第一个参数是一个声明事件类型的字符串(不带"on"前缀),比如 click,mousedown,和 keypress。addEventListener() 方法的第二个参数可以和早些时候描述过的函数引用同样对待。第三个参数则是一个 Boolean 值,指明该结点是否以DOM中所谓的捕捉模式来侦听事件。事件的捕捉和派发---综合起来称为事件的传播--最后由另一篇文章来描述。对于一个典型的事件 侦听器来说,第三个参数应该为 false(假)。

那种绑定方法最好?
如果您足够幸运,只需要为某一个操作系统上特定版本的浏览器创建应用程序,则可以为选定的浏览器选择最现代的绑定方式。但是对于跨浏览 器的网站作者来说,选择绑定方法则需要面对实质性的挑战。如果您只计划支持 IE5/Mac,则可以不考虑 attachEvent() 和 addEventListener() 方法,因为 IE5/Mac 对这两种方法都不支持。这种情况下,比较实际的选择有两种,要么绑定标识属性,要么绑定对象属性。这时就需要费心思了。

一方面,W3C DOM Level 2 承认基于标识属性的方法,并将它推荐为 addEventListener() 方法的可接受代替方法。为了和数以百万计的脚本相兼容,所有支持脚本编程的浏览器都支持基于标识属性的事件绑定方法。一些自动化的页面制作工具,比如 DreamWeaver,也把事件处理器的属性嵌入到 HTML 标识中。但是另一方面,在元素标识文件中嵌入面向脚本的信息,又不能将内容从风格及行为中分离开来,这和当前的流行趋势相违背。把事件绑定到对象属性上的 方法听起来方向是对的,但是在 W3C 关于 HTML,XHTML,或者 DOM 的标准中,并没有对事件属性提供“官方”的支持。尽管如此,在实际生活中,除了第一代支持脚本编程的浏览器之外,其它浏览器都支持这种方法。一个纯标准论 者会认为上述的两种方法都有缺点,但是对于讲究实际的开发者来说,即使考虑到未来主流浏览器的兼容性,这两种方法都是“安全”的。

事件的信息矿:事件对象
所有这三种事件模型的核心都是一个事件对象--它是一个抽象的实体,其属性中包含很多对事件处理函数具有潜在价值的信息。从本文早些时候对事件绑定技术的 讨论中,您可能可以推断出事件对象对脚本之所以至关重要,原因之一是除了基于标识属性的绑定方法以外,其它绑定方法都不支持将参数传递到事件处理函数中。 事件对象通过提供足够的“挂钩”,使事件处理函数可以读取事件的特征,从而填补了这个缝隙。因此,事件处理函数可以得到接收事件的元素的引用,以及其它一 些有用的信息,比如鼠标动作的坐标,鼠标使用的按键,键盘上被按压的键,以及在事件发生的过程中是否有修饰键被按下(比如检测 Shift-click 事件)。

访问事件对象
虽然事件对象的精确构成因为本文讨论的三种 DOM(NN4,IE4+,以及 W3C/Safari)的不同而有所变化,但是,一个事件处理函数只能通过以下两种方式之一来访问事件对象:NN 方式和 IE 方式。W3C/Safari DOM 事件对象公布给脚本的接口方式和 NN4 的事件对象一样;而 IE4+ 则有自己的方法。IE4+ 的事件对象更加易于描述,因此我们首先对它进行讨论。简单地说,事件对象是 window 对象的一个属性。这意味着在所有的实例中只有一个事件对象。举例来说,在键盘上简单地按压和松开一个按键,会产生三个事件:onKeyDown, onKeyPress,和 onKeyUp(事件的发生顺序和这里的列举顺序相同)。如果 onKeyDown事 件激活的函数花费很长的时间进行处理,则浏览器就会把其它两个事件保持在队列中,直到 onMouseDown 事件处理完成为止。而对于 NN4 和 W3C DOM 来说,事件对象看起来就更加抽象一些。除了基于标识属性风格的绑定方法之外,其它绑定方法都是把事件对象自动传递给与事件相绑定的函数。传递给函数的是一 个单一的参数。开发者需要在函数中定义一个参数变量,来“接收”该参数的值。为了避免和IE中的 window.event 对象互相冲突,请不要把参数命名为 event。举例来说,把它命名为 evt 就相当好,相应的事件函数的定义大致如下:

function myFunc(evt) {
      // script statements here
}
然而,如果您使用的是基于标识属性的事件绑定技术,就必须显式地把事件作为一个参数传递到您调用的函数。为了完成事件的传递,需要把 event 这个关键字作为参数进行传递:onClick = "myFunc(event)"外部传入的参数是您的事件处理函数和 NN 的事件对象之间的唯一联系纽带。如果在主事件处理函数内部调用的其它函数需要该对象或者该对象的属性值,则您可以把该对象或其属性值作为参数中继给这些函 数。如果您想知道 IE 是否把事件的引用保存在 window.event 属性中,那答案是“是”。使用这个语法交集是相当安全的,因为在 NN 和 IE 这两个浏览器,被传递到事件处理函数的事件对象都有您所期望的当前事件的属性值。

兼容两种事件对象引用
设想在处理事件时,我们需要在一个事件函数中考察一个或者多个事件属性。这是一个简单的技术,可以使事件处理函数和作为参数传入的事件对象协同工作,或者 从 window.event 属性中读取信息。而且,这个技术不必处理不同的浏览器版本之间的细微差别。在开始的时候,需要在您的事件处理函数中定义一个参数变量,准备接收可能传入的 事件对象。然后,通过简单的条件表达式把浏览器的事件对象赋值给上述的参数变量:

function myFunc(evt) {
      evt = (evt) ? evt : ((window.event) ? window.event : "")
      // process event here
}
如果事件对象真的以参数的形式传进来了,则在函数内部,事件对象就被保留在 evt 这个局部变量中。如果这个参数是 null,而且浏览器的 window 对象包含有一个 event 属性,则 window.event 对象就会把自己赋值给 evt 变量。然而,为了完成这个工作,还应该再包含一层或者多层条件控制,以便优雅地适应那些在事件模型中没有定义事件对象的的早期浏览器:

function myFunc(evt) {
      evt = (evt) ? evt : ((window.event) ? window.event : "")
      if (evt) {
          // process event here
      }
}
为了把同样的方式应用到所有事件处理函数的构建中,您可以定义一个函数来兼容两种事件,即由绑定的标识属性显式传入的事件对象,以及由绑定的事件属性隐式传入的事件对象。这样即使您在开发过程中改变了事件绑定的风格,这个函数也不必改变。

瑞典自助餐式地选择事件对象
然而,建立一个指向事件对象的引用只是战斗的一部分。来自不同事件模型的每一个事件对象都拥有自己的一套属性,以容纳事件的细节。下面的表格列出了最常用的属性,以及这些属性在上述三种事件对象类型中的名称。

表格 1. 流行的事件对象属性

描述NN4IE4+W3C/Safari
Event targettargetsrcElementtarget
Event typetypetypetype
X coordinate on pagepageX*pageX
Y coordinate on pagepageY*pageY
Mouse buttonwhichbuttonbutton
Keyboard keywhichkeyCodekeyCode


标注*的属性值可以通过对 event.clientX + document.body.scrollTop 或者 event.clientY + document.body.scrollTop 进行求值来得到。

Macintosh 版本的IE5在通常情况下都遵循 IE4+ 的事件对象模型,但是有一个例外,即 IE5/Mac 的事件对象既定义了 srcElement 属性,也定义了 target 属性,这两个属性都指向接收事件的元素。需要抽象的最重要的事件对象属性可能得算指向接收事件的 HTML 元素的引用。NN4 和 W3C 的事件对象采用相同的属性名(target),而 IE4+ 的事件对象则使用 srcElement 属性。这时候,对象检测技术(而不是费力劳神而又具有危险倾向的浏览器版本识别方法)再次拯救了我们。对于那些非文本容器的元素,一个简单的条件表达式就 可以轻松处理脚本语法上的差别:

var elem = (evt.target) ? evt.target : evt.srcElement
从现在开始,您的脚本就可以读写任何浏览器对象模型公布出来的元素对象属性了。

W3C DOM结点的事件目标
W3C DOM 的结点架构使得文档中的每一个结点都可以接收事件。在支持这一架构的浏览器中,发生在嵌套文本顶上的事件并不调用分配给文本容器的事件处理器,相应的文本结点才是该事件的目标结点。考虑如下场景:

在事件实例,当鼠标的指针在一个 SPAN 元素包含的文本顶上滚动时,该文本就会被高亮显示。 事件绑定的过程通过对象属性在 init() 函数中进行。从表面上看,当用户在 SPAN 元素顶上滚动鼠标时,onMouseOver 事件动作函数就为该元素指派一个与风格表单规则相关联的类名(highlight),该风格规则把文本的显示风格定义为粗体,黄色背景;而在 onMouseOut 函数中,则把风格恢复为原始的版本(类 normal)。请注意一个 toggleHighlight() 函数是如何在事件对象的 type 属性的帮助下,执行两个动作的(该属性在所有事件模型对象中的名称是相同的)。请试一下这个事件实例。但是如果您把例子装载到 NN6,则鼠标事件的真正目标就是 SPAN 元素中的文本结点了。本文并不讨论事件的传播机制,但是请相信,W3C DOM 事件模型的缺省行为会使事件沿着结点的包含层次向上传播(和 IE4+ 中事件通过元素容器向上传播的机制很类似)。因此,在这个事件实例中。鼠标事件会从其真正的目标向上传递到文本结点的容器(也就是 SPAN 元素)。这些事件触发了 SPAN 元素中相应的事件处理器。虽然事件处理器属于 SPAN 元素,事件对象还是保留文本对象的引用,并将它作为事件的原始目标。然而,只有对文本结点的容器进行动作,才能修改它的风格。为了实现 toggleHighlight() 函数的等价操作,使之可以修改SPAN容器的 className 属性,该函数需要派生出一个指向文本结点容器的引用。一个策略是使用 W3C DOM 事件对象的 currentTarget 属性,该属性返回一个处理事件的结点的引用。脚本中的决策树需要考虑这个属性,增加代码之后的 toggleHighlight() 函数如下所示:

function toggleHighlight(evt) {
      evt = (evt) ? evt : ((window.event) ? window.event : "")
      if (evt) {
          var elem
     &nb

sp;    if (evt.target) {
              if (evt.currentTarget && (evt.currentTarget != evt.target)) {
                  elem = evt.currentTarget
              } else {
                  elem = evt.target
              } 
          } else {
              elem = evt.srcElement
          }
          elem.className = (evt.type == "mouseover") ? "highlight" : "normal"
      }
}
另一个可选的方法是考察由 target 属性返回的对象的 ronodeType 属性。一个能够把事件定向给文本结点的浏览器,也可以把一个文本结点的 nodeType 属性值报告为3,而不是报告为元素结点的类型(其值为1)。如果事件的目标是一个文本结点,则脚本程序就可以通过该文本结点的 parentNode 属性来得到其上级元素结点的引用。这种方法的决策树在某种程度上得到更多的改进:

function toggleHighlight(evt) {
      evt = (evt) ? evt : ((window.event) ? window.event : "")
      if (evt) {
          var elem
          if (evt.target) {
              elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target
          } else {
              elem = evt.srcElement
          }
          elem.className = (evt.type == "mouseover") ? "highlight" : "normal"
      }
}
如果您正在用遵循 W3 的浏览器阅读本文,则请尝试这个修改过的版本,看看鼠标滚动时的风格变化。这个页面使用了嵌入到事件实例中的最新版本的 toggleHighlight() 函数,展示了如何使用 JavaScript 为那些能够显示期望效果的浏览器增加额外的价值,同时也可以那些基本的内容提供给仍然使用着较老版本或者不支持脚本编程的浏览器的用户,只不过在模式上不 那么动人和便于交互。

一个事件处理函数的模板
并不是每个事件处理函数都处理页面元素对象中同样的属性或者行为,但是,从上文的讨论可以派生出来的一个模板,您可以在这个模板的帮助下开始编码。模板如下:

function functionName(evt) {
      evt = (evt) ? evt : ((window.event) ? window.event : "")
      if (evt) {
          var elem
          if (evt.target) {
              elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target
          } else {
              elem = evt.srcElement
          }
          if (elem) {
              // process event here
          }
      }
}
请把第一行的函数名替换为您希望的函数名,并在注视指示的地方开始书写具体事件的代码。这个格式应该可以为您提供一个起点,适合于您采用的任何跨浏览器的 事件绑定风格。如果您需要在一个页面中多次使用这个格式,则可以进一步精简代码,即把读取目标的代码抽象成一个可重用的工具函数,然后在每一个事件处理函 数中进行调用:

// shared function
function getTargetElement(evt) {
      var elem
      if (evt.target) {
          elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target
      } else {
          elem = evt.srcElement
      }
      return elem

}

function functionName(evt) {
      evt = (evt) ? evt : ((window.event) ? window.event : "")
      if (evt) {
          var elem = getTargetElement(evt)
          if (elem) {
              // process event here
          }
      }
}
有了这类框架,您现在应该可以把更多的注意力集中在各个事件处理函数要求的具体动作中了。
【ELK】最新版ELK日志搜集,过滤与展示,手把手教你搭建企业级ELK日志平台 ELFK是一套完整的日志集中处理方案。 E:ElasticSearck ES 分布式索引型非关系数据库 存储logstash输出的日志 全文检索引擎,保存的格式是json格式 L:logstash 基于java语言开发的,数据收集引擎。日志的收集,可以对数据进行过滤,分析,汇总,以标准格式输出 K:Kiabana 是es的可视化工具。对es存储的数据进行可视化展示,分析和检索。 F: FileBeat是一个轻量级日志采集器,Filebeat属于Beats家族的6个成员之一。 阅读详情

相关推荐

Ecg信号QRS波峰检测:A Real-Time QRS Detection Algorithm (Pan-Tompkins法)

Pan-Tompkins法是R峰检测的经典方法,被引量高达6000+次。 Pan J, Tompkins W J. A real-time QRS detection algorithm[J]. IEEE transactions on biomedical engineering, 1985 (3): 230-236. 本文对论文流程进行了总结,并参考BioSigKit项目,复现了论文代码。 流程图: 代码如下: 第一部分是信号读入,这里使用MIT_BIH信号的100,读入10000个数据点 第二部分

weixin_42870380的博客 1万+

JavaScript事件绑定的方法说明

事件使得客户端的 JavaScript 有机会被激活,并得以运行。在一个 Web 页面装载之后,运行脚本的唯一方式,就是响应系统或者用户的动作。虽然从第一个支持脚本编程的浏览器面世以来,简单的事件被实现为 JavaScript 的一部分;但是大多数最近出现的浏览器都实现了强壮的事件模型,使脚本可以更加智能地处理事件。现在的问题在于:为了支持各种浏览器,您必须和多个先进的 事件模型做斗争,准确地说,

1326

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 527

IE下常用的事件绑定的方式

1.html事件 描述:在IE下html事件绑定方式等同于非IE、 详情请看: 2.dom0事件 描述:在IE下dom0事件绑定方式等同于非IE 详情请看: 3.dom2事件 描述:在IE下通过attachEvent函数绑定的事件,称为dom2事件 语法:元素节点.attachEvent('type',listenFunc) 说明: (1)参数一表示绑定事件的类型,有on!! (2)参数二表示事件发生时执行的监听函数 注意: (1)在...

不甜呐的博客 930

Jenkins Job DSL:用代码管理CI/CD配置的实践指南

Jenkins 是持续集成(CI)领域的经典开源平台,其核心价值在于自动化构建与交付流程。然而传统 UI 配置方式导致配置不可版本化、难以复现、审计困难,严重制约团队规模化协作效率。Job DSL 作为一种声明式配置即代码(IaC)方案,通过 Groovy 脚本驱动 Jenkins 内部 API,实现 Job、View、Folder 等资源的程序化创建与维护,天然支持 Git 版本控制、权限审计与环境一致性保障。它不替代 Pipeline,而是与其协同构成‘流程定义’与‘基础设施定义’双轨体系,显著提升 C

weixin_33744141的博客 518

手把手教你用AD9834 DDS模块DIY一个可调信号源(附AD原理图/PCB/程序)

本文详细介绍了如何使用AD9834 DDS模块DIY一个高精度可调信号源,涵盖硬件搭建、原理图解读、PCB优化和程序烧录等关键步骤。通过STM32控制实现0-10MHz频率范围输出,特别适合电子设计与射频实验,提供完整的AD原理图、PCB设计和程序代码参考。

weixin_31854867的博客 406

JS的事件以及常见事件的绑定

ITML事件可以是浏览器行为,也可以是用户行为。当这些一些行为发生时,可以自动触发对应的JS函数的运行,我们称之为事件的驱动,指的就是行为触发代码运行的这种特点。

gege_0606的博客 1363

实战指南:在UE5中高效集成Entt(ECS)框架

本文提供了一份在虚幻引擎5中高效集成Entt ECS框架的实战指南。针对UE5项目在处理大规模动态实体时的性能瓶颈,详细讲解了如何通过数据驱动的ECS架构进行优化。内容包括前期环境准备、核心构建步骤、创建首个ECS子系统以及与UE原生系统的数据同步技巧,旨在帮助开发者快速掌握集成方法,提升游戏逻辑的执行效率。

weixin_29002209的博客 158

第八章 JS事件

JavaScript前端开发教程 目录: 第八章 JS事件 事件概述 事件的绑定方式 事件对象 【案例】缓动的小球 页面事件 焦点事件 鼠标事件 【案例】鼠标拖拽特效 键盘事件 表单事件 【案例】图片放大特效 &&:习题+答案 链接:第八章 JS事件 PPT???? 习题: 单选题: 1、W3C规定在以下哪个阶段进行事件处理()。 A、事件冒泡 B、事件捕获 C、事件冒泡和事件捕获...

m0_46844278的博客 3699

大数据分析案例-基于决策树算法构建信用卡违约预测模型

本项目旨在使用机器学习等算法构建信用卡违约预测模型,主要应用在金融相关领域,根据用户以往的行为数据来预测是否会违约,有利于商业银行防范和化解信用卡风险,完善信用卡违约风险管理工作。本次实验通过探索性分析以及使用决策树构建信用卡违约模型,得出以下结论:1.可透支金额主要集中在0~200000之间。2.性别对于可透支金额的影响较小。3.受教育程度和婚姻状况对可透支金额的影响较大。4.决策树模型的准确率为0.88,模型效果还有待提高。

m0_64336780的博客 7574

电磁场仿真:电磁场基础理论_(13).微波技术基础

微波是指频率在300 MHz到300 GHz之间的电磁波。这一频率范围对应的波长为1米到1毫米。

2401_87715305的博客 1316

前端绑定click事件在IE浏览器点击触发无作用解决方法

写的前端页面在火狐、谷歌、360浏览器上功能均正常,在IE浏览器按钮点击不起作用切换失败。我的本机IE是IE10,在IE9上测试同样不起作用。 在网上搜的攻略,说是jquary版本与IE浏览器的兼容问题,并说jquary1.x版本可以兼容所有版本,然而我尝试了使用1.x和2.x版本的jq框架,并不起作用,click事件仍然无法触发。 偶然间我点击了允许浏览器阻止的内容运行,click点击事件竟然可...

tomorrownan的博客 1万+

【AlphaFold2】深入浅出,讲解Evoformer|学习笔记

本篇博客是围绕youtube德国博主Kilian Mandon()的《从头实现AlphaFold2:AlphaFold Decoded》的第五期视频讲解和note-book内容写成的笔记,加上了自己的理解和对相关概念的解释。上期我们讲解了AlphaFold2的特征提前的部分【AlphaFold2】Feature extraction:提取特征,为模型输入做准备|Datapipeline讲解。本期,我们将介绍AlphaFold2中最为庞大且最为重要的部分——Evoformer。

Yaoyao2024的博客 2013

JavaScript 添加事件绑定的三种方法

1、使用html进行事件绑定 1.1、直接在 html 标签上写入事件类型和事件处理方法。 <button onclick = "alert('hello world')">click me!</button> 1.2、在 html 标签上写入事件类型,在 js 上写事件处理方法。 html部分 <button onclick = "sayHello()">click me!</button> js部分 function sayHello(

Yingjieweb 的技术博客 1787

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JavaScript 事件绑定浅谈

1.HTML绑定 即把事件写在html标签的属性里面;属于DOM0级标准 例:<div onclick="myFunction()">点击</div> <script> function myFunction(){ console.log('这是一个点击事件'); } &...

BERWIN89的博客 301

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

js的事件绑定

js如何绑定事件? 1. html绑定事件 <button class="btn" onclick="alert(1111)">事件绑定</button> 直接写到标签内部,但是不利于后期的维护,现在几乎不用 2. dom0级绑定事件 2.dom0级绑定事件 //先获取dom var btn=document.querySelector('.btn'); //再给dom绑定事件 btn.onclick=function(e) {

listStyleScript的博客 251

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

javascript:void(0) 含义

结合了 JavaScript 的void操作符和 HTML 中的伪协议。void是 JavaScript 中的一个一元操作符,首次出现在 ECMAScript 1999(ECMA-262 3rd Edition)中,其作用是计算一个表达式但不返回任何值(即返回undefined伪协议允许在<a>标签的href属性中直接执行 JavaScript 代码。因此,执行void(0),即计算表达式0并返回undefined。由于返回值是undefined,浏览器不会对页面进行任何操作(如跳转或加载新内容)。

likuoelie的博客 3万+

JS及JQuery绑定事件的方法

一、JS事件绑定的方法 1、直接在DOM里进行绑定 <a href="#" onclick="fun()"> 2、在脚本里绑定 <script> vara=document.getElementById("a"); a.onclick=function(){alert("你好!")}; </script> 3、JS获取DOM对象后,调用对象的ad...

weixin_30293135的博客 87

vue事件绑定的3种书写方式

参考:https://jspang.com/posts/2017/03/26/vue2-3.html#%E7%AC%AC3%E8%8A%82%EF%BC%9Amethods-option-%E6%96%B9%E6%B3%95%E9%80%89%E9%A1%B9 1.$event传递点击鼠标的一些事件及属性 <!DOCTYPE html> <html lang="en"&...

u012183426的博客 2162

js中的两种事件绑定

事件绑定有两种方法,一种是在控件中绑定,另外一种是在javascript中获得控件,然后绑定。 如红色部分。记得浏览器是从头到尾解析程序的,所以要在控件之后定义才能获得控件。否则是空。 <body onload=""> <input type="button" id="b1" value="click1" onclick="clickHandler()...

weixin_33753003的博客 107

js绑定事件的方法有几种?

支持同一元素绑定多个处理函数,可控制事件传播阶段(捕获/冒泡),是现代开发推荐方式。这种方法可动态绑定事件,但每个事件类型只能绑定一个处理函数,后续绑定会覆盖之前的。这种方式简单直观,但不利于代码维护和复用,且只能绑定一个处理函数。直接在HTML元素中使用事件属性绑定代码,例如。在父元素上绑定事件处理器,通过判断事件目标(适用于复杂组件或动态内容。)动态绑定函数,例如。

2503_92828486的博客 241

JS----click3种方法

js最常用的click事件3种方法 1、onclick=name() <!DOCTYPE html> <html leng="en"> <head> <meta charset="utf-8"> <title>one</title> </head>...

weixin_33971205的博客 282

引入javascript

button onclick="alert('你好2')">按钮Aalert('你好2')1、行间事件(主要用于事件)2、页面script标签引入。3、外部引入js文件。

weixin_69620626的博客 175

Js事件 事件绑定

有四种绑定方式:1、在元素中,通过onXXX(事件)设置绑定方法2、在Javascript代码中,通过获得元素,为元素的onXXX(事件)设置绑定方法3、通过for、event为元素绑定事件(IE4+)。for后面是元素id,event是具体事件4、通过attachEvent为元素绑定事件(IE5+)。第一个参数是事件名,第二个参数是绑定的方法代码如下: View Code <ht...

weixin_30260399的博客 75

javascript之事件绑定的方式

同第二种方法比较类似,首先读取DOM对象,然后是通过addEventListener方法监听事件,设置触发事件的函数。addEventListener方法有两个参数,第一个是事件的类型,第二个是触发事件要引用的匿名函数。比如上面的button标签,就是在属性里面设置了onclick这个属性,通过这个属性来绑定事件。第一种方式是通过标签事件,就是在标签里面设置事件属性,并绑上相关javascript回调函数。第二种方式是通过BOM对象属性的事件属性绑定事件。上面的button就没有设置onclick属性。

2301_81968528的博客 413

js 异步编程思想

一、js中的异步编程有四种情况   1、定时器      2、所有的事件绑定        3、ajax异步请求   4、回调函数 转载于:https://www.cnblogs.com/ywx354980-bk/p/8944488.html...

weixin_30699831的博客 142
上一篇: jquery开发:jquery事件绑定解绑机制
下一篇: vue开发:脚手架搭建的vue项目里引入jquery和bootstrap
Generon
博客等级 码龄11年 135粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值