首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stopPropagation()表示KeyboardEvent

stopPropagation()表示KeyboardEvent
EN

Stack Overflow用户
提问于 2012-02-03 14:00:36
回答 1查看 4.6K关注 0票数 2

问题

如何成功地防止KeyboardEvent冒泡,而不立即在事件处理程序中执行return false

注意:事件是KeyboardEvent类型的,我不使用jQuery,因此e.stopPropagation()不是一个选项(当我对KeyboardEvent对象进行console.log时,KeyboardEvent对象上没有这样的方法)。

更多信息

事件使用本机方法绑定(addEventListener()attachEvent(),取决于浏览器),并使用此函数取消默认设置:

代码语言:javascript
复制
this.cancelHandler = function(event) {
    /**
     * Cross browser event cancellation (e.preventDefault() is not available without jQuery 
     */

    var e = event || window.event;
    // All good browsers…
    if (e.preventDefault) {e.preventDefault();}
    // …and IE
    if (e.returnValue) {e.returnValue = false;}

    return false;
};

这可以防止默认触发,但它不会停止那些KeyboardEvent的传播。

我正在寻找至少与IE7+和现代浏览器兼容的东西。

EN

回答 1

Stack Overflow用户

发布于 2012-02-03 14:03:19

使用这段代码

代码语言:javascript
复制
e.cancelBubble = true;
if( e.stopPropagation ) e.stopPropagation();

stopPropagation不是jQuery,而是标准函数(当然不是ie标准)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9129789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档