使用ExtJS 4.1.1,即使在Ext.util.KeyMap中,我已经设置了defaultEventAction:'preventDefault‘,在fn :preventDefault中也设置了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.');
}
}]
});
});任何帮助都是值得感激的。
发布于 2012-08-13 14:07:01
在这个线程中检查Omnosis的答案。给出了捕获此类事件的详细描述。希望能帮上忙。
发布于 2012-08-13 14:22:24
您需要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
});https://stackoverflow.com/questions/11933854
复制相似问题