当我不想执行与事件关联的默认操作时,我使用
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已定义并且它是一个函数并且它不会引发错误?