码迷,mamicode.com
首页 > 编程语言 > 详细

javascript使用事件

时间:2015-07-22 18:57:00      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:htm5   前端   网页设计   javascript   

        p{
            background: gray;
            color: white;
            padding:10px;
            margin:5px;
            border: thin solid black;
        }
        span{
            background: white;
            color: black;
            padding: 2px;
            cursor:pointer;
        }
        a{
            background:gray;
            color:white;
            padding: 10px;
            border: thin solid black;
        }
        table{
            margin: 5px;
            border-collapse: collapse;
        }
        th,td{
            padding: 4px;
        }
1)在元素上使用某个以on开头的属性——内联处理事件;

    <p onmouseover="this.style.background='white';this.style.color='black'"
       onmouseout="this.style.removeProperty('color');this.style.removeProperty('background')">
        远地本着“构筑诚信,永续发展”的理念为客户提供专业的理财服务、财富管理以及产品方案推荐。
        远地都进来看看撒将通过自身的专业优势和有效的信息交流平台,为资金富裕方和资金需求方打造一个专业,诚信,共赢,睿智的服务平台,
        帮助客户实现稳定、安全的财富增值,帮助更多优秀的中小型企业融资成功。
    </p>
2)定义函数,并用它的名称作为以on开头的属性里的值——用函数处理事件;

<p onmouseover="handleMouseOver(this)"
   onmouseout="handleMouseOut(this)">
    远地本着“构筑诚信,永续发展”的理念为客户提供专业的理财服务、财富管理以及产品方案推荐。
    远地都进来看看撒将通过自身的专业优势和有效的信息交流平台,为资金富裕方和资金需求方打造一个专业,诚信,共赢,睿智的服务平台,
    帮助客户实现稳定、安全的财富增值,帮助更多优秀的中小型企业融资成功。
</p>
<p onmouseover="handleMouseOver(this)"
   onmouseout="handleMouseOut(this)">
    远地秉承“奉献、拼搏、勤奋、团结奉献”的职业精神,已为200多家企业包括国企、民企和院所提供了企业转型升级、
    战略规划设计、集团组建、组织管理、质量管理体系、人力资源管理体系、财务风险管控和企业综合咨询等服务。
    并与100多家企业建立长期战略伙伴的合作关系。。
</p>
    <script type="text/javascript">
        function handleMouseOver(elem){
            elem.style.background='white';
            elem.style.color='black';
        }
        function handleMouseOut(elem){
            elem.style.removeProperty('background');
            elem.style.removeProperty('color');
        }
    </script>
3.1)使用标准的DOM搜索技巧,并用以on开头的属性指派一个函数——用DOM处理事件;

3.2)用代表该元素的HTMLElement对象上的addEventListener方法——用DOM处理事件;

<p id="block1">
    远地本着“构筑诚信,永续发展”的理念为客户提供专业的<span id="licai">理财</span>服务、财富管理以及产品方案推荐。
    远地都进来看看撒将通过自身的专业优势和有效的信息交流平台,为资金富裕方和资金需求方打造一个专业,诚信,共赢,睿智的服务平台,
    帮助客户实现稳定、安全的财富增值,帮助更多优秀的中小型企业融资成功。
</p>
<p id="block2">
    远地秉承“奉献、拼搏、勤奋、团结奉献”的职业精神,已为200多家企业包括国企、民企和院所提供了企业转型升级、
    战略规划设计、集团组建、组织管理、质量管理体系、人力资源管理体系、财务风险管控和企业综合咨询等服务。
    并与100多家企业建立长期战略伙伴的合作关系。。
</p>
<pre name="code" class="html"><button id="pressme">点击移除事件</button>


<script type="text/javascript">
<span style="font-family:KaiTi_GB2312;">  //使用Dom构建事件处理</span>
  var pElems=document.getElementsByTagName("p");
    for(var i=0;i<pElems.length;i++){
        pElems[i].onmouseover=handleMouseOver;
        pElems[i].onmouseout=handleMouseOut;
    }
    function handleMouseOver(e){
        e.target.style.background='white';
        e.target.style.color='black';
    }
    function handleMouseOut(e){
        e.target.style.removeProperty('background');
        e.target.style.removeProperty('color');
    }
</script>
<script type="text/javascript"><span style="font-family:KaiTi_GB2312;">
</span>//使用addEventListener和removeEventListener方法 
var pElems=document.getElementsByTagName("p");
    for(var i=0;i<pElems.length;i++){
        pElems[i].addEventListener("mouseover",handleMouseOver);
        pElems[i].addEventListener("mouseout",handleMouseOut);
    }
    document.getElementById("pressme").onclick=function(){
        document.getElementById("block2").removeEventListener("mouseout",handleMouseOut);
    }
    function handleMouseOver(e){
        e.target.style.background='white';
        e.target.style.color='black';
    }
    function handleMouseOut(e){
        e.target.style.removeProperty('background');
        e.target.style.removeProperty('color');
    }
</script>
3.3)Event对象的函数和属性

    type——事件的名称(如mouseover);

    target——事件指向的元素;

    currentTarget——带有当前被触发事件监听器的元素;

    eventPhase——事件生命周期的阶段;

    bubbles——如果事件会在文档里冒泡则返回true,否则返回false;

    cancelable——如果事件带有可撤销的默认行为则返回true,否则返回false;

    timeStamp——事件的创建时间,如果事件不可用则为0;

    stopPropagation()——在当前元素的事件监听器被触发后终止事件在元素树中的流动;

    stopImmediatePropagation()——立即终止事件在元素树中的流动。当前元素上未被触发的事件监听器会被忽略;

    preventDefault()——防止浏览器执行与事件关联的默认操作;

    defaultPrevented——如果调用过preventDefault()则返回true;

<script type="text/javascript">
//<span style="font-family:KaiTi_GB2312;">使用type属性</span>
 var pElems=document.getElementsByTagName("p");
    for(var i=0;i<pElems.length;i++){
        pElems[i].onmouseover=handleMouseEvent;
        pElems[i].onmouseout=handleMouseEvent;
    }
    function handleMouseEvent(e){
        if(e.type=="mouseover"){
            e.target.style.background='white';
            e.target.style.color='black';
        }else{
            e.target.style.removeProperty('background');
            e.target.style.removeProperty('color');
        }
    }
</script>
<script type="text/javascript">
<span style="font-family:KaiTi_GB2312;">//</span>理解事件流:捕捉、目标、冒泡
 var licai=document.getElementById("licai");
    var textblock=document.getElementById("block1");
    licai.addEventListener("mouseover",handleMouseEvent);
    licai.addEventListener("mouseout",handleMouseEvent);
    textblock.addEventListener("mouseover",handleDescendantEvent,true);
    textblock.addEventListener("mouseout",handleDescendantEvent,true);
    textblock.addEventListener("mouseover",handleBubbleMouseEvent,false);
    textblock.addEventListener("mouseout",handleBubbleMouseEvent,false);
    function handleBubbleMouseEvent(e){
        if(e.type=="mouseover" && e.eventPhase==Event.BUBBLING_PHASE){
            e.target.style.padding="5px";
        }else if(e.type=="mouseout" && e.eventPhase==Event.BUBBLING_PHASE){
            e.target.style.removeProperty('padding');
        }
    }
    function handleDescendantEvent(e){
        if(e.type=="mouseover" && e.eventPhase==Event.CAPTURING_PHASE){
            e.target.style.border="thick solid red";
            e.currentTarget.style.border="thick double black";
        }else if(e.type=="mouseout" && e.eventPhase==Event.CAPTURING_PHASE){
            e.target.style.removeProperty('border');
            e.currentTarget.style.removeProperty('border');
        }
        //e.stopImmediatePropagation();
        //e.stopPropagation();
    }
    function handleMouseEvent(e){
        if(e.type=="mouseover"){
            e.target.style.background='white';
            e.target.style.color='black';
        }else{
            e.target.style.removeProperty('background');
            e.target.style.removeProperty('color');
        }
    }
</script>
    <a href="http://www.sina.com.cn">访问新浪</a>
    <a href="http://www.w3school.com.cn">访问W3C</a>
<script type="text/javascript"><span style="font-family:KaiTi_GB2312;">
//</span>撤销默认的行为<span style="font-family:KaiTi_GB2312;">
</span> function handleClick(e){
        if(!confirm("您真的要访问"+ e.target.href+" 吗?")){
            e.preventDefault();
        }
    }
    var elems=document.querySelectorAll("a");
    for(var i=0;i<elems.length;i++){
        elems[i].addEventListener("click",handleClick,false);
    }
</script>
3.4)使用HTML事件

3.4.1)文档事件(document对象)

      readystatechange——在readyState属性的值发生变化时触发;

3.4.2)窗口事件(window对象)

      onabort——在文档或资源加载过程被终止时触发;

      onafterprint——在已调用window.print()方法,但尚未给用户提供打印选项时触发;

      onbeforeprint——在用户完成文档打印后触发;

      onerror——在文档或资源的加载发生错误时触发;

      onhashchangge——在锚部分发生变化时触发;

      onload——在文档或资源加载完成时触发;

      onpopstate——触发后提供一个关联浏览器历史的状态对象;

      onresize——在窗口缩放时触发;

      onunload——在文档从窗口或浏览器中卸载时触发;

3.4.3)鼠标事件

     click——在点击并释放鼠标键时触发;

     dbclick——在两次点击并释放鼠标键时触发;

     mousedown——在点击鼠标键时触发;

     mouseenter——在光标移入元素或某个后代元素所占据的屏幕区域时触发;

     mouseleave——在光标移出元素或所有后代元素所占据的屏幕区域时触发;

     mousemove——当光标在元素上移动时触发;

     mouseout——与mouseleave基本相同,除了当光标仍然在某个后代元素上时也会触发;

     mouseover——mouseenter基本相同,除了当光标仍然在某个后代元素上时也会触发;

     mouseup——在释放鼠标键时触发;

3.4.3.1)MouseEvent对象

        button——标明点击的是哪个键。0是鼠标主键,1中中键,2是右键;

        altKey——如果在事件触发时按下了alt/option键则返回true;

        clientX——返回事件触发时鼠标相对于元素视口的X坐标;

        clientY——返回事件触发时鼠标相对于元素视口的Y坐标;

        screenX——返回事件触发时鼠标相对于屏幕坐标系的X坐标;

        screenY——返回事件触发时鼠标相对于屏幕坐标系的Y坐标;

        shiftKey——如果在事件触发时按下了shift键则返回true;

        ctrlKey——如果在事件触发时按下了Ctrl键则返回true;

<p id="block1">
    远地本着“构筑诚信,永续发展”的理念为客户提供专业的<span id="licai">理财</span>服务、财富管理以及产品方案推荐。
    远地都进来看看撒将通过自身的专业优势和有效的信息交流平台,为资金富裕方和资金需求方打造一个专业,诚信,共赢,睿智的服务平台,
    帮助客户实现稳定、安全的财富增值,帮助更多优秀的中小型企业融资成功。
</p>
<table border="1">
    <tr>
        <th>Type:</th><td id="eType"></td>
    </tr>
    <tr>
        <th>X:</th><td id="eX"></td>
    </tr>
    <tr>
        <th>Y:</th><td id="eY"></td>
    </tr>
</table>
<script type="text/javascript">
//使用MouseEvent对象响应鼠标事件
    var textblock=document.getElementById("block1");
    var typeCell=document.getElementById("eType");
    var xCell=document.getElementById("eX");
    var yCell=document.getElementById("eY");

    textblock.addEventListener("mouseover",handleMouseEvent,false);
    textblock.addEventListener("mouseout",handleMouseEvent,false);
    textblock.addEventListener("mousemove",handleMouseEvent,false);

    function handleMouseEvent(e){
        if(e.eventPhase==Event.AT_TARGET){
            typeCell.innerHTML= e.type;
            xCell.innerHTML= e.clientX;
            yCell.innerHTML= e.clientY;
        }
        if(e.type=="mouseover"){
            e.target.style.background='black';
            e.target.style.color='white';
        }else{
            e.target.style.removeProperty('color');
            e.target.style.removeProperty('background');
        }
    }
</script>
3.4.4)键盘焦点事件

     blur——在元素失去焦点时触发;

    focus——在元素获得焦点时触发;

    focusin——在元素即将获得焦点时触发;

    focusout——在元素即将失去焦点时触发;

3.4.5)键盘事件

     keydown——在用户按下某个键时触发;

     keypress——在用户按下并释放某个键时触发;

     keyup——在用户释放某个键时触发;

3.4.5.1)KeyboardEvent对象

    char——返回按键代表的字符;

    key——返回所按的键;

    ctrlKey——如果在按键时Ctrl键处于按下状态则返回true;

    shiftKey——如果在按键时shift键处于按下状态则返回true;

    altKey——如果在按键时shift键处于按下状态则返回true;

    repeat——如果该键一直处于按下状态时则返回true;

   

<form>
    <p>
        <label for="fave">Fruit:<input autofocus id="fave" name="fave"/></label>
    </p>
    <p>
        <label for="name">Name:<input autofocus id="name" name="name"/></label>
    </p>
    <button type="submit">提交</button>
    <button type="reset">重置</button>
</form>
<br/>
<span id="message"></span>
<script type="text/javascript">
    var inputElems=document.getElementsByTagName("input");
    for(var i=0;i<inputElems.length;i++){
        inputElems[i].onkeyup=handleKeyboardEvent;
    }
    function handleKeyboardEvent(e){
        document.getElementById("message").innerHTML="Key pressed: "+ e.keyCode+" Char:"+String.fromCharCode(e.keyCode);
    }
</script>
3.4.6)表单事件

     submit——在表单提交时触发;

     reset——在表单重置时触发;

版权声明:本文为博主原创文章,未经博主允许不得转载。

javascript使用事件

标签:htm5   前端   网页设计   javascript   

原文地址:http://blog.csdn.net/bboyjoe/article/details/47003113

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!