就学点皮毛 是一个关注高效生活(高效办公)、工具应用推荐、软件使用技巧的网站。我们的理念是:在专业上较真,在兴趣上寻乐。

响应事件

为了实现与页面元素的交互,就需要用到 JavaScript 事件。JavaScript 事件是在特定的事件发生时,由 HTML 元素发出的通知。JavaScript 可对这些事件进行响应,执行特定的任务。

响应事件

内联事件处理器

简单,但HTML和JS混合使用,不推荐。

<input type="button" onclick="myFunc()" />
<script>
    myFunc(){
        alert("You clicked the button");
    }
</script>

JS语句添加事件处理器

<input type="button" id="myButton" />
<script>
    myFunc(){
        alert("You clicked the button");
    };
    document.getElementById("myButton").onclick=myFunc; //注意:注册事件处理器时,函数名后面不能有括号(如果有括号,会先执行函数)。
</script>

使用匿名函数:

<input type="button" id="myButton" />
<script>
    document.getElementById("myButton").onclick=function(){
        alert("You clicked the button");
    };
</script>

删除事件处理器:

 document.getElementById("myButton").onclick=null;

利用addEventListener和removeEventListener方法添加或删除事件处理器

addEventListener和removeEventListener方法:

element.addEventListener('click',myFunc,false);
element.removeEventListener('click',myFunc,false);

第一个参数指明要捕获的事件,第二个参数指明要执行的函数,第三个参数是布尔值,指明当多个嵌套元素捕获同一事件时的处理顺序,一般设置为false

<input type="button" id="myButton" />
<script>
    myFunc(){
        alert("You clicked the button");
    };
    document.getElementById("myButton").addEventListener('click',myFunc,false);
</script>

注意

默认操作

一般情况下,特定HTML元素的事件处理器是在元素默认操作之前执行的。

<a href="1.html" id="myLink" link></a>
<script>
    document.getElementById("myLink").onclick = function () {
        this.href = "2.html";
    }
</script>

通过事件处理器的更改了跳转目标。

禁止默认操作

如果事件处理器给HTML元素返回了一个布尔值false,元素的默认操作就不会执行。
修改上面的函数代码,加入用户决定是否跳转的判断:

    document.getElementById("myLink").onclick = function () {
        this.href = "2.html";
        return comfirm('即将跳转到2.html,是否前往?')
    }

用户点击确定,返回true,跳转到2.HTML,用户点取消,返回false,则a标签的默认跳转操作不会进行。

全文结束

标签
分类
作者
日期

添加新评论

菜单内容