Javscript 事件处理程序

作者: 秋枫残红 | 来源:发表于2017-06-01 02:14 被阅读5次

使用DOM级别0事件处理程序

先看一个简单的例子

<div id="div1">
<a href="http://www.baidu.com">百度</a><br>
<input type="text" placeholder="请输入文本" id="input1">
<input type="button" value="提交" id="input2" onclick="test()">
</div>
<script >
function test() {
   var textnode=document.getElementById('input1');
   if(textnode.value===''){
       alert('请输入信息')
   }
   else {
       alert('您输入的信息是'+textnode.value);
   }
}
</script>
  • 该例是点击按钮之后查看表单内数据是否完整,主要作法为在在标签内添加事件处理程序名,以及调用函数,也可将其调用写入js代码中如textnode.onclik=function(){},此时该注意的是其DOM节点一定要调用正确
  • 然而该方法的漏洞在于若对同一个事件添加俩个相同的事件处理程序后面的一个会覆盖前面的一个,且若多标签嵌套,其无法设置冒泡阶段还是捕捉阶段,因此我们常用下面这种方法

事件监听addEventListener(DOM级别2事件)

函数名 参数1 参数2 参数3
addEventListener "event_type" function_name true or false
该参数为事件名 该参数为调用函数名 true为捕捉阶段,false为冒泡阶段(更为常用)
  • 删除事件
函数名 参数1 参数2 参数3
removeEventListener "event_type" function_name true or false
该参数为事件名 该参数为调用函数名 true为捕捉阶段,false为冒泡阶段(更为常用)

<b>值得注意的是第一个参数是事件名,而不是事件处理程序名,第二个参数最好使用单独函数,以便删除时调用,否则该监听器无法被删除,含有就是捕捉阶段指事件发生时顺序为组件由外到内,而冒泡阶段正好相反</b>

  • 下面是一个例子

    <div id="div1">
    <!--<a href="http://www.baidu.com">百度</a><br>-->
    <input type="text" id="input0"><br>
    <input type="text" placeholder="请输入文本" id="input1">
    </div>
    <script >
     var textnode=document.getElementById('input1');
     function getfocus() {
          alert("获得焦点");
         textnode.removeEventListener("focus",getfocus,false);
      }
     textnode.addEventListener("focus",getfocus,false);
    </script>
    

event对象

  • 但事件发生时,浏览器将自动创建event对象,该信息可以被脚本使用,帮助执行必要的操作,例如某个键被按下的信息就存储在该对象中
    主要属性如下
    <a href="http://www.w3school.com.cn/jsref/dom_obj_event.asp">event属性</a>
    下面为两个示例
    <div id="div1">
    <a href="http://www.baidu.com" id="link">百度</a>

    </div>
    <script >
    var linknode=document.getElementById('link');
    linknode.addEventListener("click",test,false)
    function test() {
    event.preventDefault();
    alert('阻止超链接跳转');
    }
    </script>

 <div id="div1">
<input type="text" id="input1">
</div>
<script >
   var linknode=document.getElementById('input1');
   linknode.addEventListener("keyup",test,false)
    function test() {
        alert('您所按键的键码是:'+event.keyCode);
    }
</script>

2017/6/1
02:13

相关文章

  • Javscript 事件处理程序

    使用DOM级别0事件处理程序 先看一个简单的例子 该例是点击按钮之后查看表单内数据是否完整,主要作法为在在标签内添...

  • JS 事件

    目录 事件流 事件处理程序HTML事件处理程序DOM0级事件处理程序DOM2级事件处理程序IE事件处理程序跨浏览器...

  • 跨浏览器的事件处理程序

    事件处理程序有DOM0级事件处理程序、DOM2级事件处理程序,IE事件处理程序,DOM0级事件处理程序具有简单,跨...

  • 事件处理

    HTML事件处理程序 DOM0级事件处理程序 DOM2级事件处理程序 addEventListener()和rem...

  • 事件处理程序

    HTML事件处理程序 HTML程序和JS无法分离 DOM0级事件处理程序 DOM2级事件处理程序 DOM2级事件定...

  • DOM事件的问题!

    1.事件冒泡 2.事件捕获 事件处理程序 1.HTML事件处理程序 2.DOM 0级事件处理程序 3.DOM 2级...

  • 关于JavaScript跨浏览器事件的处理

    一、4种事件处理程序 事件就是用户或浏览器自身执行的某种操作,而事件处理程序即为响应某个事件的函数。事件处理程序大...

  • 带你深入理解DOM0级事件处理程序!!!

    DOM0级事件处理程序 通过JavaScript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属...

  • Javascript事件

    事件处理程序 如果是true,表示在捕获阶段调用事件处理程序如果是false,表示在冒泡阶段调用事件处理程序以上两...

  • DOM0级事件处理及DOM2级事件处理

    DOM0级事件处理程序 通过JavaScript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属...

网友评论

    本文标题:Javscript 事件处理程序

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