问题
如何成功地防止KeyboardEvent冒泡,而不立即在事件处理程序中执行return false?
注意:事件是KeyboardEvent类型的,我不使用jQuery,因此e.stopPropagation()不是一个选项(当我对KeyboardEvent对象进行console.log时,KeyboardEvent对象上没有这样的方法)。
更多信息
事件使用本机方法绑定(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;
};这可以防止默认触发,但它不会停止那些KeyboardEvent的传播。
我正在寻找至少与IE7+和现代浏览器兼容的东西。
发布于 2012-02-03 14:03:19
使用这段代码
e.cancelBubble = true;
if( e.stopPropagation ) e.stopPropagation();stopPropagation不是jQuery,而是标准函数(当然不是ie标准)
https://stackoverflow.com/questions/9129789
复制相似问题