• Javascript事件注册机制


    Javascript的几种事件注册机制

    1.直接绑定在元素上。这样的缺点是结构和行为没有分离,不符合w3c的标准。优点是,写着方便(但是多了就不方便了)。

    1 <p id="para" title="cssrain demo!" onclick="test()" >test</p>
    2 <script>
    3 function test(){
    4 alert("test");
    5 }
    6 </script> 

    2.结构和行为分离

    1 <p id="para" title="cssrain demo!">test</p>
    2 <script>
    3 function test(){
    4 alert("test");
    5 }
    6 window.onload = function(){
    7 document.getElementById("para").onclick = test;
    8 }
    9 </script> 

    3.给一个元素绑定多个事件

     1 <p id="para" title="cssrain demo!">test</p> 
     2 <script> 
     3 function test(){ 
     4 alert("test"); 
     5 } 
     6 
     7 function pig(){ 
     8 alert("pig"); 
     9 } 
    10 
    11 window.onload = function(){ 
    12 document.getElementById("para").onclick = test; 
    13 document.getElementById("para").onclick = pig; 
    14 } 
    15 </script> 

    如果按照上面的写法,我们只能输出第二个函数。 这时候我们需要用到attachEvent方法:

     1 <p id="para" title="cssrain demo!">test</p> 
     2 <script> 
     3 function test(){ 
     4 alert("test"); 
     5 } 
     6 
     7 function pig(){ 
     8 alert("pig"); 
     9 } 
    10 
    11 window.onload = function(){ 
    12 document.getElementById("para").attachEvent("onclick",test); 
    13 document.getElementById("para").attachEvent("onclick",pig); 
    14 } 
    15 </script> 

    兼容firefox

     1 <p id="para" title="cssrain demo!">test</p> 
     2 <script> 
     3 function test(){ 
     4 alert("test"); 
     5 } 
     6 
     7 function pig(){ 
     8 alert("pig"); 
     9 } 
    10 
    11 window.onload = function(){ 
    12 var element = document.getElementById("para"); 
    13 if(element.addEventListener){ // firefox , w3c 
    14 element.addEventListener("click",test,false); 
    15 element.addEventListener("click",pig,false); 
    16 } else { // ie 
    17 element.attachEvent("onclick",test); 
    18 element.attachEvent("onclick",pig); 
    19 } 
    20 } 
    21 </script> 

    js事件注册的相关文章:

    http://blog.csdn.net/lynnlin1122/article/details/3477818

  • 相关阅读:
    网站术语
    移动web开发入门
    Bootstrap研究3基础html元素
    我所理解的jQuery(3)jQuery的构建
    你好,2011
    Bootstrap研究0概述
    Bootstrap研究2布局系统杂记
    我所理解的jQuery(2)谈jQuery的整体设计,驳"侵入性太强"
    winxp等操作系统下数据库文件 迁移到 win7下,附加时发生Error: 5123 的解决方法
    Bootstrap研究1精巧的网格布局系统
  • 原文地址:https://www.cnblogs.com/snowinmay/p/2976609.html
Copyright © 2020-2023  润新知