前端js之event事件(一)

前端js之event事件(一),第1张

前言:有些事情看上去简单甚至于平淡无奇,比如说爱情或者我们的生活可实际上却很复杂。js里面的event也是一样,不信就打印一下一个平淡无奇的onclick里面包含的event,只要在方法内传入参数event,或者e,还有ev然后打印,你就会发现一个新的天地。

核心内容:多种事件的运用场景解析

开始了

1吹牛逼

2吹牛逼

3也许我别来,你自然无恙

A:复杂多样的鼠标事件

应用:鼠标事件很多,平时用个点击就以为用过那就大错特错了,鼠标事件不仅有原生的点击,双击,移动,进入,移出,悬浮,可以打印event里面的type查看,还有一些比如jq封装的事件,这些事件而且会相互触发,比如移动move是最容易被其他事件触发,或者原生的拖拽事件,不仅有自己的事件,而且会触发元素上的很多其他事件。

B:为什么会这样呢?

解析:第一本身不同事件类型但是相近的鼠标 *** 作就会同时触发,第二在多层dom结构中的事件,由于本身事件的冒泡机制,由最底层的元素向上冒泡,到父元素到document到window,以至于类似事件不同方法但是同时触发

C:怎么解决

办法:比如现象一:只想触发最底层的元素的点击事件,不触发其父元素的点击事件,解决方案阻止冒泡。现象二:类型相近事件相互触发,导致方法重复执行,解决方案在易促发的事件的方法中可以加入条件判断,是否已经执行过相同 *** 作,如果有要么直接return,如果还有其他 *** 作判断,可以将可能重复的那个 *** 作进行重置。现象三:原生方法事件以及简单事件相互交叉影响导致最后鼠标事件失灵,定义的方法不能执行,页面不可控制,解决方案单个功能实现后进行方法设为null如domonclick=null,然后设置dom对象释放捕获。

event事件实在太多太复杂了,正如人生一样,可是有时候多一点细心多一点耐心,没事多打打断点和测试,我们会看得更加清晰,正如我若别来,你自然无恙,越是纠结,越是沉沦,往往简单最好。

事件人生,人生事件,简单复杂,复杂简单,一正一反,经历了自然会成长,花香了自然蝶飞舞。

<div id=cd>

<canvas width="300" height="300" style="border:1px solid #c3c3c3;"></canvas>

</div>

<scripr>

var pp=documentgetElementById("cd");

pponclick=function(e){

e=e||event;

var x=eclientX-ppoffsetLeft;//获取点击后x的坐标

var y=eclientY-ppoffsetTop;//获取点击后y的坐标

alert(x);

alert(y);

}

</scripr>

你是说 efromElement 和 erelatedTarget

relatedTarget 看这里:

>

直接用js

documentgetElementById(id)onclick=function(){}//内容写在函数体里

或者用jquery

$("#a")click(function(){ });

这个好办么。。

你的每一个INPUT不是都有VALUE么。。

那么你在加载的时候可以给每个INPUT在绑定事件啊。

如下

//初始化计算器

function InitCalculator()

{

//用来获取按钮数组

var arrButton = documentgetElementsByName("input");

//遍历数组为按钮添加事件

for(var i=0;i<arrButtonlength;i++)

{

var currBtn = arrButton[i];

//如果不是按钮,则继续下一个(可能是计算器上的文本显示框)

if(currBtntype != "button")

continue;

var strBtnVal = currBtnvalue;

switch(strBtnVal)

{

case "+":

currBtnclick=function(){switchFun("+")}

bareak;

case "-":

currBtnclick=function(){switchFun("-")}

bareak;

case "":

currBtnclick=function(){switchFun("")}

bareak;

case "/":

currBtnclick=function(){switchFun("/")}

bareak;

case "=":

currBtnclick=function(){switchFun("=")}

bareak;

}

}

}

//给按钮绑定的事件

funciton switchFun(strFunName)

{

switch(strBtnVal)

{

case "+":

//调用计算加法的方法

//call addition funtion

bareak;

case "-":

//调用计算减法的方法

//call subtration funtion

bareak;

case "":

//and so on

bareak;

case "/":

//and so on

bareak;

case "=":

//and so on

bareak;

}

}

$(function(){

$("input")change(function(){

$("button")click();

})

})

再对按钮设置一个点击时的函数,就OK了!望采纳~

以上就是关于前端js之event事件(一)全部的内容,包括:前端js之event事件(一)、js如何获取canvas标签中自己画的图形的单击事件 - HTML5技术探讨 -、JS事件onmouseover获取上一个元素对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9612650.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存