`
yiminghe
  • 浏览: 1471624 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ext.EventObject 的 默认事件阻止

阅读更多

 

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

 

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

a.onclick=function() {
 //todo

  return false;
}
 

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

 

a.onclick=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();
}
});

 

 

 

分享到:
评论
5 楼 atian25 2009-07-24  
yiminghe 写道
atian25 写道
嗯,但是Element似乎没有封装contextmenu事件


?什么叫没封装,就是个事件啊

xx.on('contextmenu',function(e){
  //block it
  e.stopEvent();
})


-.-!! 晕...丢脸大了这次...看Element源码没看到这事件...忘记了是js本身的..
4 楼 yiminghe 2009-07-24  
atian25 写道
嗯,但是Element似乎没有封装contextmenu事件


?什么叫没封装,就是个事件啊

xx.on('contextmenu',function(e){
  //block it
  e.stopEvent();
})
3 楼 atian25 2009-07-24  
嗯,但是Element似乎没有封装contextmenu事件
2 楼 yiminghe 2009-07-24  
atian25 写道
似乎取消右键默认菜单,用click里面判断,e.preventDefault();不行

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

mousedown,不过右键是不能阻止

//没用的,阻止用contextmenu
Ext.get("resume_panel").on("mousedown",function(e){
if(e.button==2){
e.stopEvent();
}
});
1 楼 atian25 2009-07-24  
似乎取消右键默认菜单,用click里面判断,e.preventDefault();不行

相关推荐

    JAVA EventObject用来广播事件

    java.util.EventObject 用来广播事件 Java事件监听模式: 1、事件 ( extends EventObject):定义事件,继承EventObject的属性和方法 2、监听器接口 ( extends EventListener):继承EventListener接口 3、注册器:...

    Ext Js权威指南(.zip.001

    5.2.2 封装浏览器事件:ext.eventobject / 179 5.2.3 移除浏览器事件 / 181 5.3 内部事件 / 184 5.3.1 内部事件对象:ext.util.event / 184 5.3.2 为组件添加事件接口:ext.util.observable / 188 5.3.3 为...

    extjs帮助文档

    - `Ext.EventObject.preventDefault()`:阻止默认事件行为。 - `Ext.EventObject.stopPropagation()`:阻止事件冒泡。 #### 十三、Ext.CompositeElement类(第16页) - **概述**:Ext.CompositeElement类用于表示...

    ExtJS入门教程(超级详细)

    11、Ext.EventManager类 ……………… 15 12、Ext.EventObject类 ………………… 15 13、Ext.CompositeElement类 ………… 16 14、Ext.CompositeElementLite类 ……… 16 15、Ext.Fx类 …………………………… 16 16...

    extjs帮助文档pdf版

    - `Ext.EventObject.stopEvent()`: 同时阻止默认行为和事件冒泡。 #### 13. Ext.CompositeElement 类 (P.16) - **概述**:提供了操作一组DOM元素的方法。 - **常用方法**: - `Ext.CompositeElement.add(elements...

    EXT JS 3.0 Core Class Diagram

    - `preventDefault()`, `stopEvent()`, `stopPropagation()`: 阻止默认行为、停止事件传播。 - `within()`: 检查事件是否在特定元素内。 4. `Ext.DomQuery`: 用于高效地选择DOM元素的工具,类似于jQuery的`$`。 ...

    ext输入框点击回车键直接进入查询

    if (event.keyCode === Ext.EventObject.ENTER) { // 检查是否按下回车键 event.preventDefault(); // 阻止默认的表单提交行为 doQuery(field.getValue()); // 调用查询函数 } }); ``` 3. **定义查询函数**:...

    精通JS脚本之ExtJS框架.part1.rar

    4.4.6 Ext.EventObject事件 4.5 各种事件登记方式 4.5.1 传统式登记 4.5.2 内联式登记 4.5.3 Dom Level2登记 4.6 高级组件事件 4.7 ExtJS键盘事件 第5章 ExtJS组件 5.1 核心组件 5.1.1 ExtJS组件结构 ...

    精通JS脚本之ExtJS框架.part2.rar

    4.4.6 Ext.EventObject事件 4.5 各种事件登记方式 4.5.1 传统式登记 4.5.2 内联式登记 4.5.3 Dom Level2登记 4.6 高级组件事件 4.7 ExtJS键盘事件 第5章 ExtJS组件 5.1 核心组件 5.1.1 ExtJS组件结构 ...

    Ext API详解--笔记

    `EXT核心API详解(五)-Ext.EventManager EventObject CompositeElement CompositeElementLite.txt`阐述了事件管理和复合元素的概念。`EventManager`负责事件注册和分发,`EventObject`封装了事件的相关信息,而`...

    Ext3.0 api帮助文档

    - **事件发布/订阅(Event Publishing/Subscribing)**: 使用Ext.EventObject接口,实现了事件的发布和订阅,增强了不同组件之间的通信。 4. **数据管理(Data Management)** - **数据存储(Data Stores)**: ...

    Ext combobox 下拉多选框带搜索功能

    = Ext.EventObject.BACKSPACE && e.getKey() != Ext.EventObject.DELETE) { combo.filterStore(e.getCharCode()); } }); ``` 4. 自定义方法,如`filterStore`,用于处理搜索逻辑: ```javascript comboBox....

    EXTJS总结.txt

    1.Ext.get var el = Ext.get('myElementId');//获取元素,等同于document.getElementById('myElementId');//会缓存 2. Ext.fly var el = Ext.fly('myElementId')//不需要缓存。 注:享元模式(Flyweight Design ...

    Ext_类的详细介绍

    - **功能**:同时调用 `preventDefault()` 和 `stopPropagation()`,从而同时阻止默认行为和事件传播。 7. **onAvailable()** - **参数**:`id`、`fn`、`scope`。 - **功能**:当指定 ID 的 HTML 元素变得可用时...

    EXTJS___API详解

    12. **Ext.EventObject 类**:封装了浏览器原生的事件对象,提供了统一的事件处理接口。 13-14. **CompositeElement 和 CompositeElementLite 类**:用于批量操作一组DOM元素,提供了类似Element的功能。 15. **...

Global site tag (gtag.js) - Google Analytics