不说太多虚的,这次要聊的,是JavaScript的三种事件绑定方式。

方法1:直接在HTML中指定,称为“内嵌”会不会更合适一点?

(1)直接在HTML的属性里写代码

示例代码:

<button onclick="alert('我我我')">点我!button>

界面部分(点击前)

13f3dd33600b3192fb78e050739749b9.png

界面部分(点击前)

c8507005594116651239296a31900d1e.png

当然啦,这种方法不仅仅onclick事件可以使用,onmouseover等方法一样适用,不过考虑到代码的可维护性,并不建议多用这种方式;

(2)在HTML中定义函数

示例代码:

<button onclick="fun()">点我button>    <script>        function fun() {            alert('123');        }script>

界面部分(点击前):

ab3c10cb737ba8a16934145f69792825.png

界面部分(点击后):

411f1a8319e0dd584b8bf85d4076dbec.png

方法2:在JavaScript中绑定事件

示例代码:

<button id="btn">点我点我button>    <script>        var btn = document.querySelector('#btn');        btn.onclick = function() {            alert('我我我');        }

界面部分(点击前):

3e882997e5fffe8b21264fb94569cee9.png

界面部分(点击后):

627e5632b32ee10791799b7f891a4dc9.png

这种方法按照功能不同将代码分离,让代码的结构更加清晰,这一点相比第一种方法强了很多,但是坏处也是明显的,上代码!

<button id="btn">点我点我button>    <script>        var btn = document.querySelector('#btn');        btn.onclick = function() {            alert('我我我');        }        btn.onclick = function() {            alert('你你你');        }script>

界面部分(点击前):

3e882997e5fffe8b21264fb94569cee9.png

界面部分(点击后):

9ff0f2c6f5650858d21b4338efe3edad.png

啊?“我我我”呢?没错,当同一个点击事件有不止一个触发事件时,后面的触发事件就会覆盖前面的事件,这也是这种方法的最大缺点之一!

方法3:绑定事件监听函数 addEventListenr()

示例代码:

<button class="btn">点点点button>    <script>        var btn = document.querySelector('.btn');        btn.addEventListener('click', fn1);        btn.addEventListener('click', fn2);        function fn1() {            alert('我我我');        };        function fn2() {            alert('你你你');        }script>

界面部分(点击前):

0913394f69745723f266c342c90d9817.png

界面部分(点击后):

f8f64691706b3f57ff20c6d451c4ac49.png

4e975d1b5c70b6573b0e7d63547d3923.png

如图所示,这种方式相比第二种方式,优点是触发不止一个事件时相当容易!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐