js中event事件处理

1. HTML事件

?直接添加到HTML结构中

function show() {
    alert(‘hello‘);
}

<body>
    <button id="btn" onclick="show()">按钮</button>
</body>

2. DOM0级事件

?把一个函数赋值给一个事件处理程序

? ? a. 移除事件:event.onclick = null

? ? b. dom 0级事件只允许绑定一个事件处理函数

<button id="btn">按钮</button>

var btn = document.getElementById(‘btn‘);
btn.onclick = function() {
    alert(‘hello‘);
}

btn.onclick = function() {
    alert(‘ok‘);           //覆盖上面的函数,只会显示"ok"
}

3. DOM2级事件

?dom2级事件允许给元素绑定多个事件处理函数

a. 添加事件

addEventListener("事件名",事件处理函数,"布尔值");

?true:事件捕获

?false:事件冒泡

b. 移除事件

removeEventListener("事件名",事件处理函数)

案例1:DOM2级事件

    btn.addEventListener(‘click‘, function() {
        alert(‘show‘);
        // arguments.callee 指向当前函数
        btn.removeEventListener(‘click‘, arguments.callee);
    });


案例2: 给同一个事件绑定多个处理函数

<button id="btn">按钮</button>

var btn = document.getElementById(‘btn‘);
//function()是匿名函数形式
btn.addEventListener(‘click‘, function() {
    alert(‘ok‘);
});
function show() {
    alert(‘show‘);
}
//结果"ok","show"--两个事件都会处理,show引用函数名
btn.addEventListener(‘click‘, show); 

案例3:一次性事件

<button id="btn">按钮</button>
<script>
    var btn = document.querySelector(‘#btn‘);
    function show() {
        alert(‘show‘);
        //当执行一次事件后,移除事件
        btn.removeEventListener(‘click‘, show);
    }
    btn.addEventListener("click",show);
</script>

一次性事件用this和callee方法

<button id="btn">按钮</button>
<script>
    var btn = document.querySelector(‘#btn‘);
    btn.addEventListener("click",
        function() {
            alert(‘show‘);
            //当执行一次事件后,移除事件
            this.removeEventListener(‘click‘, arguments.callee);
        }
    );
</script>

4. IE事件处理程序(ie8及以下版本)

a. attachEvent("事件名",事件处理函数)

b. detachEvent("事件名",事件处理函数)

事件处理函数兼容处理写法

function addEvent(elm, type, callback) {
    if (elm.addEventListener) {
        elm.addEventListener(type, callback); //DOM事件
    } else if (elm.attachEvent) {
        elm.attachEvent(‘on‘ + type, callback);//ie事件,事件需要带on
    } else {
        elm[on + "type"] = callback;     //HTML事件
    }
}
window.onload = function() {
    var btn = document.getElementById(‘btn‘);
    addEvent(btn, ‘click‘, function() {
        alert(123);
    });
}

html代码:
<body>
    <button id="btn">按钮</button>
</body>

原文地址:https://www.cnblogs.com/hjson/p/10291507.html

时间: 2024-10-18 16:05:24

js中event事件处理的相关文章

js中关于事件处理函数名后面是否带括号的问题

今天总结一个关于事件处理程序的小细节.首先回顾一下事件处理的一些概念. JS中的事件处理(事件绑定)就是让某种或某些事件触发某些活动.有两种常见的形式,分别是DOM Level 0 和DOM Level 2.这两种方式最大的区别就在于DOM 0级事件处理只能用于事件冒泡,而DOM 2级事件处理却可以通过设置第三个参数来分别支持事件冒泡和事件捕获. DOM 0级事件处理一般是直接把一个函数分配给一个事件处理程序,既可以在元素中直接分配一个事件处理程序,如方式一所示;也可以在脚本中把函数分配给事件处

js中event.target,this

event.target这是注册事件时的对象,或者它的子元素.通常用于比较 event.target 和 this 来确定事件是不是由于冒泡而触发的.经常用于事件冒泡时处理事件委托. 1.this和event.target的区别: js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <style> span, s

浅谈Js中关于事件处理函数执行顺序的问题

Js给dom元素绑定事件的处理函数总的来说有两种方式:在html文档中绑定,在js代码中绑定. 然而,并不推荐在html标签上绑定事件. 在js代码中也可以分两种方式绑定事件: 1:通过dom元素的onclick等属性,直接绑定: 2: a.在ie下使用attachEvent/detachEvent函数的方式进行事件的绑定和取消: b.使用W3C标准的addEventListener和removeEventListener,给dom添加事件监听者和移除. 第一种方式只能绑定一个事件处理函数,后面

js中的事件处理方法

第一种:HTML事件处理程序 即将事件直接添加到HTML结构里 <div> <input type="button" value="按钮" onclick="showMessage()"> </div> <script> function showMessage(){ alert("hello world"); } </script> 这种方式是比较容易理解,但是缺点

js中event.keyCode用法及keyCode对照表

HTML 用户名:<input type="text" id="UserAccount" onKeyPress="JumpByEnter(UserPwd)" /> 密码:<input name="UserPwd" type="password" onKeyPress="IsEnterKeyPress()"> JavaScript: JumpByEnter(User

JS中event事件

JS事件基础 1.event对象 (1)用来获取事件的详细信息:鼠标位置.键盘位置 document的本质:document.childNodes[0].tagName     例子:获取鼠标位置:clientX横坐标,clientY纵坐标 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script>

关于js中event的target和currentTarget的区别

今天又遇到这个问题了,总是搞不清楚target和currentTarget的区别,百度搜索的时候看到一遍文章解释得很清楚,特意记录下录,以备不时之需: target与currentTarget的区别? 通俗易懂的说法: 比如说现在有A和B, A.addChild(B) A监听鼠标点击事件 那么当点击B时,target是B,currentTarget是A 也就是说,currentTarget始终是监听事件者,而target是事件的真正发出者 总结: target在事件流的目标阶段:currentT

理解JavaScript中的事件处理 阻止冒泡event.stopPropagation();

原文地址:http://www.cnblogs.com/binyong/articles/1750263.html 这篇文章对于了解Javascript的事件处理机制非常好,将它全文转载于此,以备不时之需. 什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击.鼠标经过某个特定元素或按下键盘上的某些按键.事件还可能是 Web 浏览器中发生的事情,比如

JS中的event 对象详解

JS中的event 对象详解 JS的event对象 Event属性和方法: 1. type:事件的类型,如onlick中的click: 2. srcElement/target:事件源,就是发生事件的元素: 3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键) 4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的