问题
如果不在事件处理程序中立即执行return false
,如何成功阻止KeyboardEvent冒泡?
注意:事件的类型为KeyboardEvent
而我不使用jQuery,因此e.stopPropagation()
不是一个选项({{1}上没有这样的方法我KeyboardEvent
时的对象。
更多信息
使用本机方法(console.log
或addEventListener()
绑定事件,具体取决于浏览器),并使用此函数取消默认值:
attachEvent()
阻止默认值被触发,但它不会停止那些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;
};
的传播。
我正在寻找与至少 IE7 +和现代浏览器兼容的东西。
答案 0 :(得分:3)
使用这段代码
e.cancelBubble = true;
if( e.stopPropagation ) e.stopPropagation();
stopPropagation不是jQuery,而是标准函数(当然不是标准函数)