zoukankan      html  css  js  c++  java
  • js事件

    <!DOCTYPE>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>如何获取事件触发源(兼容IE和FireFox)</title>
        <script src="jquery-1.4.4.js" type="text/javascript"></script>
        <script type="text/javascript">
            function ClickMe(e) {
                var src = e.target || window.event.srcElement;
                alert(src.value);
                alert(src.innerHTML);
            }
            function ClickMe2() {
                var e = arguments[0] || window.event;
                var src = e.srcElement || e.target; // src 就是事件的触发源
                alert(src.value);
            }
            function test(event) {
                var e = event || window.event;
                if (e.keyCode == 13) {
                    alert("捕捉住回车提交事件!");
                }
            }
        </script>
    </head>
    <body>
        <button onclick="ClickMe(event)"> 测试</button>
        <input type="text" name="t" onkeydown="test(event);"/>
        <button onclick="ClickMe2(event)">测试2</button><br />
        <textarea rows="20" cols="50">
            document.onclick = onClick;
            function onClick(ev) {
                ev = ev || window.event; // 事件     
                var target = ev.target || ev.srcElement; // 获得事件源 
                /* 
                target.getAttribute()是获取该事件源对像里面的一些属性。
                比如对像中有(name,id,type等等);
                */
                var dragObj = target.getAttribute('type');
                alert(dragObj);
            }
        </textarea>
    </body>
    </html>
    

      这段代码在ie浏览器下 在文本框按下回车键 会触发button的事件(即事件冒泡)但是实际上他确实要写上阻止默认行为。难道默认行为也是事件冒泡或者说默认行为是事件冒泡的一种?而这里直接写return flase 都无效.不明白为什么?邪恶的ie

    代码:

    js 阻止默认行为

                if (e && e.preventDefault)
                    e.preventDefault();
                //IE中阻止函数器默认动作的方式
                else
                    window.event.returnValue = false;
                return false;

    阻止事件冒泡:

                //如果提供了事件对象,则这是一个非IE浏览器
                if (e && e.stopPropagation)
                //因此它支持W3C的stopPropagation()方法
                    e.stopPropagation();
                else
                //否则,我们需要使用IE的方式来取消事件冒泡
                    window.event.cancelBubble = true;

    jq:stopPropagation,preventDefault;

    结果在ie下e.stopPropagation();提示没有这个方法或者属性!难道jq的e事件对象信息 

    function test(e) {
    e.stopPropagation();
            }在html
     <input type="text" name="t" onkeydown="test(e);"/>这样写无效!一定要$("xxx").click(function(e){.....}); 或者用bind 事件绑定才可以。。。。
  • 相关阅读:
    优先队列
    Problem W UVA 662 二十三 Fast Food
    UVA 607 二十二 Scheduling Lectures
    UVA 590 二十一 Always on the run
    UVA 442 二十 Matrix Chain Multiplication
    UVA 437 十九 The Tower of Babylon
    UVA 10254 十八 The Priest Mathematician
    UVA 10453 十七 Make Palindrome
    UVA 10163 十六 Storage Keepers
    UVA 1252 十五 Twenty Questions
  • 原文地址:https://www.cnblogs.com/y112102/p/2913593.html
Copyright © 2011-2022 走看看