JavaScript中事件操作和设置事件

所有事件:

onclick              点击事件

onmouseover             鼠标移入事件

onmouseout             鼠标移出事件

onkeyup               键盘按下事件

onkeydown              键盘抬起事件

onblur               失去焦点事件

onfocus               获得焦点事件

onsubmit              提交表单时的事件


设置事件

1dom1级方式设置

<input  type=”text”  name=”username” οnclick=”函数名称()” />

function 函数名称(){this[window]}

<input  type=”text”  name=”username” οnclick=”过程代码var a=10;var b=20;alert(123);this[itnode]” />

itnode.onclick = function(){this[itnode]}

itnode.onclick = 有名函数名称;

function 函数名称(){this[itnode]}

取消dom1事件:

itnode.onclick = null;

 

以上是dom1级事件设置的4种具体表现形式,除了第①种(其代表window,其他三种方式的函数内部this都代表当前节点本身。

2、dom2级方式设置

主流浏览器方式(包括IE9以上 版本浏览器)

itnode.addEventListener(事件类型,事件处理[,事件流]);   //设置

itnode.removeEventListener(事件类型,事件处理[,事件流]);    //取消

IE浏览器方式(IE6/7/8)

itnode.attachEvent(事件类型,事件处理);   //设置

itnode.detachEvent(事件类型,事件处理); //取消

事件类型:就是我们可以设置的具体事件,例如onclick/onmouseover等

              主流浏览器方式没有”on标志”,例如addEventListener(‘click’,...);

  IE浏览器方式有”on”标志

事件处理:事件驱动,可以是一个有名/匿名函数

  例如addEventListener(‘click’,function(){}/有名函数);

事件流:true捕捉型、[false冒泡型]

 

事件取消(removeEventListener/detachEvent)操作具体要求

① 事件处理必须是有名函数,不可以是匿名函数。

② 事件取消的参数与绑定的参数完全一致(数量/内容)

 

dom2级事件设置的特点:

① 可以为同一个对象设置多个同类型事件。

② 事件取消也非常灵活。

③ 对事件流也有很好的处理。

 

添加事件
<body>
    <h2>dom2级事件设置操作css样式</h2>
    <div style="width: 300px; height: 200px; background: blue;">事件操作</div>
</body>
</html>
<script type="text/javascript">
    //dom2级事件设置简单使用
    var dv = document.getElementsByTagName('div')[0];
    //dv.addEventListener('click', 处理 有名/匿名函数);
    dv.addEventListener('click', function () {
        //this 代表div的元素节点对象
        dv.style.backgroundColor = "pink";
        this.style.width = "400px";
    });
    
    function f1() {
        console.log(111);
    }
    function f2() {
        console.log(222);
    }
    function f3() {
        console.log(333);
    }
    //为同一个div对象设置多个mouseover事件
    dv.addEventListener('mouseover', f1);
    dv.addEventListener('mouseover', f2);
    dv.addEventListener('mouseover', f3);
</script>
效果图:



取消事件
<body>
    <h2>dom2级事件取消</h2>
    <div style="width: 300px; height: 200px; background: blue;">事件取消</div>
    <input type="button" value="取消" οnclick="cancel()">
</body>
</html>
<script type="text/javascript">
    //事件取消要求:1、有名函数设置事件
    //            2、设置和取消的参数完全一致
    //dom2级事件设置简单使用
    var dv = document.getElementsByTagName('div')[0];
    function cancel() {
        dv.removeEventListener('mouseover', f2);
    }
    //dv.addEventListener('click', 处理 有名/匿名函数);
    dv.addEventListener('click', function () {
        //this 代表div的元素节点对象
        dv.style.backgroundColor = "pink";
        this.style.width = "400px";
    });
    
    function f1() {console.log(111);}
    function f2() {console.log(222);}
    function f3() {console.log(333);}
    //为同一个div对象设置多个mouseover事件
    dv.addEventListener('mouseover', f1);
    dv.addEventListener('mouseover', f2);
    dv.addEventListener('mouseover', f3);
</script>
效果图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值