当我不想执行与事件关联的默认操作时,我使用
function listener(e){
if(e.preventDefault) e.preventDefault();
/* Other code */
}
但我刚刚了解到事件有 boolean cancelable
。那么,我应该改用这段代码吗?
function listener(e){
if(e.cancelable) e.preventDefault();
/* Other code */
}
我想知道:
- 如果
event.preventDefault
是true
,是否真的意味着该事件是可取消的?也许如果它不可取消,则该属性已定义(和true
),但它不是函数;或者它是一个函数,但如果我调用它会引发错误。 - 所有浏览器(IE,我在看你)都支持
event.cancelable
吗?是否有浏览器有该方法event.preventDefault
但没有event.cancelable
; 或有方法event.cancelable
但没有event.preventDefault
;或者这event.cancelable
并不总是意味着它event.preventDefault
已定义并且它是一个函数并且它不会引发错误?