首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript事件(上)

一、事件是什么? 在JavaScript中,事件往往是页面的一些动作引起的,例如当用户按下鼠标或者提交表单,甚至在页面移动鼠标时,事件都会出现。...二、JavaScript事件 在JavaScript中,调用事件的方式共有2种: (1)在script标签中调用; 在script标签中调用事件,也就是在事件...(2)在元素中调用; 在元素事件中引入JS,就是指在元素的某一个属性中直接编写JavaScript程序或调用JavaScript函数,这个属性指的是元素的“事件属性”。...举例1:(在元素事件属性中直接编写JavaScript) JavaScript元素中调用的。 这2种调用JavaScript事件的方式,大家刚刚开始看不理解没关系,我们只是给大家说个语法,留个印象。在接下来的章节中,我们会经常接触。

40020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    简单说 JavaScript中的事件委托(上)

    事件:JavaScript 侦测到的行为就是事件,比如鼠标点击、某个键盘的键被按下、元素获得焦点。 委托:就是把原来自己做的事,交给别人做。...li 上绑定事件,第二段只是在 li 的父元素 ul 上绑事件。...,并不在生成的元素上绑定事件,而是在生成元素的父元素上绑定事件,因为父元素是一直存在的,所以绑定的事件就可以生效。...事件委托 的局限 focus、blur 之类的事件本身没有事件冒泡机制,所以无法委托; mousemove、mouseout 这样的事件,虽然有事件冒泡,但是每次都要计算它的位置,对性能消耗高,而且很麻烦...还有 JQuery中的事件委托 又是怎么做的呢? 看这里 简单说 JavaScript中的事件委托(下)

    59620

    JavaScript的事件

    javascript与HTML之间的交互是通过事件实现的。事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。...HTML事件处理程序 某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的HTML特性来指定。这个特性的值应该是能够执行的JavaScript代码。...3)HTML与JavaScript代码紧密耦合。 2. DOM0级事件处理程序 通过javascript制定事件处理程序的传统方式,将一个函数赋值给一个事件处理程序属性。...() 事件删除 参数: 要删除的事件名 作为事件处理的函数 布尔值:true在捕获阶段调用事件处理程序;false在冒泡阶段调用 例如: //事件绑定 var btn = document.getElementById...移除事件传入的参数与添加处理程序时使用的参数相同,添加事件时如果使用匿名函数将无法删除 4. IE事件处理程序 事件处理程序会在全局作用域中运行,因此this指向window对象。

    1.5K30

    浅谈JavaScript的事件(事件类型)

    UI事件   UI事件的触发并不一定是由用户操作触发的,包括:load,页面完全加载后在window上触发该事件、当所有框架都加载完毕时触发、当图片加载完毕时在img上触发、当嵌入的元素加载完成时在object...上面触发;unload事件,当页面完全卸载后在window上面触发、当所有框架都卸载完成时在框架集上触发、当嵌入的内容卸载完毕后在object上触发;abort事件,在用户停止下载过程时,如果嵌入的内容未加载完成...,则在object上面触发;error事件,当发生JavaScript脚本错误时触发,当无法加载图像时,在img元素上触发,当无法加载嵌入内容时在object上触发,当框架无法加载时触发;select事件...当用户在页面上由一个元素移动到另一个元素事件触发的顺序为:focusout事件,在失去焦点的元素上触发;focusin事件,在获得焦点的元素上触发;blur事件,在失去焦点的元素上触发;focus事件,...在获得焦点的元素上触发。

    1.8K50

    浅谈JavaScript的事件(事件对象)

    在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有关的信息。包括导致事件的元素、事件的类型和事件的相关信息。例如鼠标操作的事件中,会包含鼠标的位置信息。...而键盘触发的事件会包含与按下的键有关信息。所有浏览器都支持event对象,但支持方式不同。 DOM中的事件对象   兼容dom的浏览会将一个event对象传递到事件处理程序中。...只读 为true表示事件是浏览器生成,false表示JavaScript添加 type String 只读 被触发事件的类型 view AbstarctView 只读 与事件关联的抽象视图   上面的表格列出了...但是如果通过attachEvent添加事件,则事件处理程序会传递一个event对象。   IE的event对象同样包含创建它的相关属性和方法,与DOM事件一样,也会因为事件类型的不同而不同。...,取消事件的默认行为 srcElement Element 只读 事件的目标,与target相同   因为事件处理程序的指定方式不同,故它的作用域也不相同。

    1.2K60

    浅谈JavaScript的事件(事件委托)

    需要事先为DOM对象指定事件处理程序,导致访问DOM的次数增多,会延迟整个页面的交互就绪时间。 事件委托   对事件处理程序过多的解决方案是使用事件委托。...事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。...ul1指定了事件处理程序,在我们单击li的时候通过事件冒泡也会触发该事件,并且能够通过target来获取当前单击的元素对象。...移除事件处理程序   前文已经讲过事件的添加以及事件的移除。对于页面的事件处理程序太多,会影响页面的性能,除了使用事件委托之外,还可以将一些事件移除。...如果某个元素有事件处理程序,通过innerHTML来替换,则事件处理程序依然存在,那么该事件处理程序已经使用不到,但是它也无法被回收,会一直占用内存空间。

    1.1K70

    浅谈JavaScript的事件(事件流)

    事件流描述的是从页面中接收事件的顺序。IE的事件流失事件冒泡,而Netspace的事件流失事件捕获。...事件冒泡   IE的事件流叫事件冒泡,即事件开始时,由具体的元素(文档中嵌套层次最深的节点)接收,然后向上传播到不具体的节点。...也就是说事件首先发生了div上,而div也就是我们单击的元素。然后事件按照dom向上传播,直至传播到document对象。所有浏览器都支持事件冒泡。...事件捕获    事件捕获的思想是不太具体的节点先接收到事件,最具体的节点最后接收到事件。事件捕获的用意在于事件到达最终的节点前,就可以捕获。...首先发生的是事件捕获,为事件的截获提供了机会。然后是实际目标接收到事件。最后一个是事件冒泡阶段,可以在这这个阶段对事件作出响应。 ?

    86880

    浅谈JavaScript的事件(事件模拟)

    事件经常由操作或者通过浏览器功能触发,通过JavaScript也可以触发元素的事件。通过JavaScript触发事件,也称为事件的模拟。...模拟事件的最后一步是触发事件,触发事件使用dispatchEvent方法,所有支持DOM事件的节点都支持该方法。...,如true;view,事件关联的视图,一般是document.defaultView;detail,与事件有关的详细信息,通常设置为0;screenX,事件相对于屏幕的x坐标;screenY,事件相对于屏幕的...可以通过JavaScript代码模拟鼠标事件、键盘事件、HTML事件和变动事件。同时也可以模拟自定义事件。...第5行输出事件的类型为myevent,正是我们自定义的事件。   上面的创建模拟事件的方法在ie8以及ie8以下的浏览器中,并不支持。可以使用以下的代码来模拟事件。

    2K70

    JavaScript事件对象与事件的委托

    事件对象 包含事件相关的信息,如鼠标、时间、触发的DOM对象等  js默认将事件对象封装好,并自动的以参数的形式,传递给事件处理函数的第1个参数,如下: document.getElementsByTagName...("div")[0].onclick = function(e){   e = window.event || e; //兼容IE低版本(事件对象绑定在window的event上)   console.log...(e);//这里e就是事件对象 } 事件的属性和方法 type:获取事件类型(click、mouseover等等) target:获取发生的所在元素(在低版本IE下用srcElement属性) stopPropagation...() 阻止事件冒泡(IE用cancelBubble属性为false阻止冒泡) preventDefault() 阻止事件默认行为(IE用returnValue属性为false阻止默认行为) 事件委托 利用...target属性,获取时间发生的所在对象,避免全体子元素加事件,对比如下:  var tbs=document.getElementsByTagName("td"); for(var i=0;i

    91350

    浅谈JavaScript的事件(事件处理程序)

    HTML事件处理程序 元素支持的事件,都可以使用与相应事件处理程序同名的HTML特性来指定。这个特性的值能支持一定的JavaScript代码。...上面的例子上,如果divClick函数定义在div的下方,我们在函数尚未解析之前,就点击div,这样就会导致报错。   另一个缺点是,这样的事件处理程序的作用域链在不同的浏览器中会导致不同结果。...通过JavaScript指定事件处理程序有两个优势:简单和浏览器兼容性好。要使用JavaScript指定事件处理程序,首先必须获取一个元素的对象引用。...DOM2级事件处理程序定义了两个方法,用于处理指定和删除事件处理程序的操作:addEventListener和removeEventListener。...在attachEvent的事件处理程序函数中this是指向window的,我们无法获取元素对象。

    1.5K50

    javascript事件流的原理

    事件是javaScript和DOM之间交互的桥梁。 你若触发,我便执行——事件发生,调用它的处理函数执行相应的JavaScript代码给出响应。...处于目标阶段:事件在 上发生并处理。但是事件处理会被看成是冒泡阶段的一部分。 冒泡阶段:事件又传播回文档。...js事件代理则是一种简单有效的技巧,通过它可以把事件处理器添加到一个父级元素上,从而避免把事件处理器添加到多个子级元素上。...关于target更多内容请参考javaScript事件(四)event的公共成员(属性和方法) 下面举例来说明。...想象如果有一个100行的表格,对比传统的为每个单元格绑定事件处理器的方式和事件代理(即table上添加一个事件处理器),不难得出结论,事件代理确实避免了一些潜在的风险,提高了性能。

    1K10

    EDB无法删除分区子表的错误

    a删除关联,再drop删除子表,提示无法删除,从错误提示看,主表a要依赖子表b,建议删除主表a,达到删除子表b的效果。...可我都删除了主子关系,为什么无法删表?...一开始,我是怀疑有什么外键之类的属性,没有删除,导致主表依赖于子表,或者no inherit没有真正删除关联,但是这些猜测,都一一验证不对。 通过询问建表的操作,才发现个细节。...但是,在EDB 9.3和EDB 10版本上,使用partition by range创建主表,此时是禁止用inherit,创建子表的,这种操作,会提示,压根不给你inherit删除partition by...不确定这个问题,是EDB 9.2的bug,还是EDB 9.3和10在设计上的升级,根本思路,还是分区表创建的一致性,要么使用partition by range,要么使用inherit,不会交叉使用。

    1.7K30

    javascript对点击事件和拖动事件的区分

    1.项目中,为了更好的服务用户,经常会设计一个便捷的通道,这个通道一般都是“悬浮”的。...由于是悬浮的,那么就会考虑用户会出现哪几种可能的操作,一个是直接点击,另外一种就是在屏幕上先拖动几下,然后再点击。 那么为了完美的实现这个需求,那么该怎么办呢?...最重要的就是要区分点击事件和拖动事件。 我们都知道,点击事件是被点击的对象可看做是静止不动的,而拖动事件的对象很明显是移动的。...那么思路就应该是先判断事件对象是否有移动的现象, 但是由于不管是在点击事件和拖动事件,其都有一个鼠标按下的一个过程和一个松开的过程,只不过拖动事件多了一个拖动动作。...那么完整的思路应是这样的: 第一:先写出鼠标按下的函数; 第二:编写对象是否被拖动的函数; 第三:判断对象是否相对原先位置产生了位移; 第四:编写鼠标松开之后的代码; 完整代码如下: var timmerHandle

    5.2K30

    如何卸载无法删除的顽固程序?

    :msiexec /x {ABCDEF12-3456-7890-ABCD-EF1234567890} /qn方法四:使用第三方卸载工具推荐工具:Revo Uninstaller:提供强力扫描功能,可以删除残留的注册表项和文件...方法五:手动删除残留文件和注册表项注意: 修改注册表可能导致系统不稳定,请谨慎操作并备份注册表。...步骤:删除安装目录:找到程序的安装目录(通常在C:\Program Files或C:\Program Files (x86)),手动删除整个文件夹。...导航到以下路径,查找与程序相关的键值并删除:HKEY_LOCAL_MACHINE\SOFTWARE\ HKEY_CURRENT_USER\Software\如果不确定是否安全删除某项...在安全模式下尝试卸载程序:某些顽固程序可能在正常模式下因文件被占用而无法卸载。方法七:检查病毒或恶意软件步骤:运行全面的病毒扫描:使用Windows Defender或其他安全软件进行全面扫描。

    5210

    JavaScript中的对象管理和事件清理

    JavaScript作为一种垃圾回收语言,通常我们不必关心对象的分配和释放问题。但偶尔,在处理回调函数时,即使不再有任何有意义的引用,也很容易让对象永远保持活跃状态。...一个常见的情况是对象关心某些外部状态的变化,只要它们存在就要关注。例如,自定义元素可能希望在window对象上监听"scroll"事件。但是,简单地向window添加事件侦听器意味着保留对对象的引用。...为了实现这一点,我们可以利用两个特性:首先,将事件侦听器中对this的强引用替换为WeakRef将阻止事件侦听器在没有其他引用存在时保持对象活跃。...handleScroll()})这将允许对象被垃圾回收,但将保留事件侦听器附加,这意味着它仍将在每个滚动事件上触发,无法解除引用并因此什么也不做。...前者让我们向事件传递一个信号,该信号将删除事件,而后者允许我们在某些对象被收集时运行一些代码。这个接口相对基本:我们创建一个新的FinalizationRegistry并传递一个回调。

    21100
    领券