Extjs KeyMap 不作用于 defaultEventAction,但执行默认的浏览器操作
Extjs KeyMap doesn't act on defaultEventAction but performs the default browser action
使用 ExtJS 4.1.1 即使在 Ext.util.KeyMap 中我已经设置了 defaultEventAction: 'preventDefault' 在 fn : 函数中我也设置了 e.preventDefault(); 它仍然在 chrome 中打开新选项卡?我只希望该字段执行实现键的操作fn,而不是打开新选项卡的默认浏览器操作。这怎么可能?
Ext.onReady(function () {
var bcTextField = Ext.create('Ext.form.Text', {
xtype: 'textfield',
renderTo: 'console-output',
emptyText: 'Enter Barcode/Accession Number',
width: 200,
margin: '0'
});
var map = new Ext.util.KeyMap({
target: bcTextField.getEl(),
binding: [{
key: "t",
ctrl: true,
scope: this,
defaultEventAction: 'preventDefault',
fn: function (key, e) {
e.preventDefault();
alert('Ctrl + t was pressed.');
}
}]
});
});
感谢任何形式的帮助。
在此线程中检查 Omnosis 的答案。给出了有关捕获此类事件的详细描述。希望对您有所帮助。
JavaScript 捕获浏览器快捷方式 (Ctrl+T/N/w)
你需要 e.stopEvent();
这是我们使用的:
var map = new Ext.util.KeyMap({
target: Ext.getBody(),
binding: [{
key: Ext.EventObject.F,
ctrl: true,
fn: function (key, e) {
e.stopEvent(); //This stops the default behaviour ;-)
//logic here...
}
}],
scope: me
});
相关文章:
- 我的指令在ngRepeat和ngInclude之前执行,尽管默认优先级为0
- Extjs KeyMap 不作用于 defaultEventAction,但执行默认的浏览器操作
- 默认事件发生后,我如何执行自己的代码
- 在剑道UI中执行默认命令's网格触发事件
- 在javascript中阻止文档执行默认操作时,在单个元素中使用默认事件
- JavaScript switch 语句只执行默认的情况
- 在谷歌自定义搜索引擎 V2 代码中执行默认查询
- iPad 阻止仅在首次单击链接时执行默认操作
- Javascript filter() 是否默认执行类型强制
- 阻止对运行AJAX的超链接执行默认操作
- 在自定义点击功能之前执行默认事件
- 阻止对所有输入执行默认操作
- 允许对目标事件执行默认操作,并阻止对父级执行默认操作
- 默认情况下,在启动时执行条件AND中的一行
- 是否可以在默认情况下对所有开关情况执行某些操作而不重复
- 在默认事件处理程序之前执行某些操作
- Javascript事件处理程序在默认行为之后执行
- 暂停当前ajax调用,执行一个新的,执行后,继续默认的ajax调用
- JavaScript, MooTools - Class.Event - onComplete:默认不执行任何操作
- 如何停止默认插件的执行?