• 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 事件绑定才可以。。。。
  • 相关阅读:
    sql server 2008数据复制方法
    排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool
    SplendidCRM中给来自EditView中的listbox控件设置选中值或数据源
    jQuery String Functions
    [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .
    [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")
    深入理解C语言
    Qt回忆录之配置开发环境
    360电话面试
    浅谈C++设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/y112102/p/2913593.html
Copyright © 2020-2023  润新知