Ext.EventObject 的 默认事件阻止

本文探讨了在ExtJS框架中如何有效处理事件,特别是如何阻止默认行为和事件冒泡。通过对比传统方法与现代方法,文章详细介绍了如何在不同场景下使用preventDefault和stopEvent方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

我们知道 对于 事件处理 ,若想 组织浏览器的默认事件处理程序运行 ,则可以在自定义的事件处理最后 return false;

 

如 如果 想要 点击 链接 不跳转页面, 传统方式 为

a.οnclick=function() {
 //todo

  return false;
}
 

如果 想用 高级的 方式 ,则要 ie 和 w3c实现区别

 

a.οnclick=function(e) {
 var ev=e||window.event;

  if(ev.preventDefault)
      ev.preventDefault();
   else
      ev.cancel=true;

}
 

而对于 Extjs ,由于 它给你的事件 已经是包装过的事件,经试验 并不支持 传统的 return false; 方法。

 

Ext.get(a).on('click',function() {
//todo


//不行的,一样会跳转
return false;

});

 

分析 它是 注册 dom 事件处理时 ,对于 我们提供的事件处理函数 直接   handler(evt) ;而没有用 return handler(evt) ;所导致。

 

 

这也不是什么大问题 ,使用高级方法的话 就不有问题了

 

 

Ext.get(a).on('click',function(e) {
//todo


//extjs 已经对ie兼容处理了
e.preventDefault();

});

 

 

ps : 一般来说 我们要阻止默认事件的同时也要阻止事件冒泡 ,那么 直接用 e.stopEvent() 就可以了 。

 

 

关于右键阻止问题:

 

右键 用 contextmenu 事件吧 ,click 用于左键点击事件 ,硬要判断那个鼠标键的话用

mousedown,不过右键是不能阻止

 

//没用,用 contextmenu 事件
Ext.get("resume_panel").on("mousedown",function(e){
if(e.button==2){
e.stopEvent();
}
});

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值