事件

作者: 董二干先生 | 来源:发表于2019-09-29 13:04 被阅读0次

    JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。

    事件流

    事件流描述的是从页面中接收事件的顺序,目前主要有三种模型:
    1.事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的元素。


    冒泡.jpg

    2.事件捕获:不太具体的节点更早接收事件,而最具体的元素最后接收事件,和事件冒泡相反。


    捕获.jpg
    3.DOM事件流:DOM2级事件规定事件流包括三个阶段,事件捕获阶段,处于目标阶段,事件冒泡阶段,首先发生的是事件捕获,为截取事件提供机会,然后是实际目标接收事件,最后是冒泡阶段。

    事件处理程序

    我们也称之为事件侦听器(listener),事件就是用户或浏览器自身执行的某种动作。比如click、load、mouseover等,都是事件类型(俗称事件名称),而响应某个事件的方法就叫做事件处理程序或者事件监听器。

    HTML内联方式

    元素支持的每个事件都可以使用一个相应事件处理程序同名的HTML属性指定。这个属性的值应该是可以执行的JavaScript代码,我们可以为一个button添加click事件处理程序。

    <input type="button" value="Click Here" onclick="alert('Clicked!');" />
    

    DOM2事件处理程序

    DOM2级事件定义了两个方法用于处理指定和删除事件处理程序的操作:
    1.addEventListener
    2.removeEventListener
    所有的DOM节点都包含这两个方法,并且它们都接受三个参数:
    1.事件类型
    2.事件处理方法
    3.布尔参数,如果是true表示在捕获阶段调用事件处理程序,如果是false,则是在事件冒泡阶段处理
    刚才的例子我们可以这样写:

    <input id="btnClick" type="button" value="Click Here" />
    
    <script type="text/javascript">
        var btnClick = document.getElementById('btnClick');
        btnClick.addEventListener('click', function() {
            alert(this.id);
        }, false);
    </script>
    

    阻止默认事件

    preventDefault()取消事件默认行为
    什么是事件默认行为?

    • a链接默认跳转
    • type =submit默认提交表单
    • 其他浏览器默认行为...

    阻止传播

    stopPropagation()取消事件进一步捕获或冒泡

    相关文章

      网友评论

          本文标题:事件

          本文链接:https://www.haomeiwen.com/subject/vivgyctx.html