发表于: 2018-07-02 21:40:00

1 334


今天完成的事情:

杀人页面写成个鬼样子,先学习一下事件代理。

javaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

为什么要用事件委托:

在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间。

事件委托的原理:

事件委托是利用事件的冒泡原理来实现的,子节点除法事件的时候,都会冒泡到最外层的节点上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。

 总结:

那什么样的事件可以用事件委托,什么样的事件不可以用呢?

适合用事件委托的事件:click,mousedown,mouseup,keydown,keyup,keypress。

值得注意的是,mouseover和mouseout虽然也有事件冒泡,但是处理它们的时候需要特别的注意,因为需要经常计算它们的位置,处理起来不太容易。

不适合的就有很多了,举个例子,mousemove,每次都要计算它的位置,非常不好把控,在不如说focus,blur之类的,本身就没用冒泡的特性,自然就不能用事件委托了。


明天计划的事情:

写完杀人页面,在写不出来就炸了啊

 
遇到的问题:

流程页面想要点击后变色,在使这个按钮失效无法点击。

开始的想法是添加一个背景色灰色的p5类名,再删除获取节点的p1

然后发现这种方法是无效的,删除了p1依旧还可以点击

大佬给我讲,开始是通过p1取到这个节点,就已经找到了了这个对象,就算改名字它还是它。


收获:

我以为的东西并不一定都像是我以为的样子,写出来的东西总是和预想中的不同。。。

还有那些大佬的博客也不全是对的,开始以为自己写错了,从博客上复制下来也不能执行。。。坑爹啊


返回列表 返回列表
评论

    分享到