【JS基础】从HTML到JS事件分离过程
最近开始从头学习js和事件。现在开始分离一个html
的js
事件从扭打在一起到分离的形成过程。
1. 必备知识
js
定义对象基本知识(构造函数)- 知道啥是
js
事件(点击对话框那种程度就行)
2. 过程走起
事件就是这样的过程。
先开始事件,然后知道事件名字,然后有个触发事件,然后响应事件。
有按钮,才能获取按钮,然后才能给按钮注册事件,事件然后触发函数响应。
按钮元素→获取按钮元素对象→按钮注册事件→事件触发函数→函数响应
这次的事件例子。打开网页,点个按钮,按钮之后弹出对话框。就酱紫。
2-1 原始版本
最原始的版本
同一html文件内js
和html
完全写在一起,不分离 !注意里面双引号和单引号问题。
<button value="button" onclick="alert('我被点了呢')">原始版本</button>
2-2 js分离,事件未分离
同一html
文件内,head部分写js
,html
内直接触发onclick
事件
<script> function dian(){ alert('我被点了'); } </script> <button value="button" onclick="ok()">分离初级版本</button>
2-3 js分离,事件分离,命名函数
虽然在head
写js
然后用元素对象onclick
点击触发事件函数testClick
但缺点就是,这样导入不同的js
文件的时候可能会有函数重名,覆盖掉的情况
<body> <button value="button" id="dian">事件分离了,命名函数</button> </body> <script> function dianClick(){ alert('被点了啦'); } var dianObj = document.getElementById('dian'); dianObj.onclick = dianClick; //千万不能写成dianClick();这样加载完就会直接调用触发了! </script>
2-4 js分离,事件分离,匿名函数
完全版本出炉!
<body> <button value="button" id="dian">事件分离了,匿名函数</button> </body> <script> // 通过id来获取按钮元素对象 var dianObj = document.getElementById('dian'); // 为按钮元素对象,注册点击事件,添加事件处理函数(匿名) dianObj.onclick = function(){ // 响应函数 alert('最后成功了!'); } </script>
3.注意点
在下面的注册事件。使用函数的时候一定要把script
写在body
的下面。不然getElementById
在元素加载之前是根本找不到标签的。会发生下面这样的错误。
Uncaught TypeError: Cannot set property 'onclick' of null
共有评论(1)
后来想了一下,最后的其实也不算完全是完全版本的。
但是初学者对于js和html分离初步理解的时候,可以这样来看。
hokyo: