Javascript extjs3.4防止ctrl+;鼠标点击
我正在使用Ext.grid.GridPanel从商店填充我的物品。 一切都很好,但我有一个问题 当我在网格行上按ctrl+鼠标单击时,该行将取消选择。我怎样才能阻止这种行为 我已经试过在鼠标点击事件和按键按下事件上编写函数Javascript extjs3.4防止ctrl+;鼠标点击,javascript,extjs,grid,ctrl,onmouseclick,Javascript,Extjs,Grid,Ctrl,Onmouseclick,我正在使用Ext.grid.GridPanel从商店填充我的物品。 一切都很好,但我有一个问题 当我在网格行上按ctrl+鼠标单击时,该行将取消选择。我怎样才能阻止这种行为 我已经试过在鼠标点击事件和按键按下事件上编写函数 this.grid.onClick = function(event){ if (event.ctrlKey === true){ event.preventDefault(); even
this.grid.onClick = function(event){
if (event.ctrlKey === true){
event.preventDefault();
event.stopPropagation();
}
};
还尝试写入返回false代码>而不是事件.preventDefault();event.stopPropagation()代码>但是没有运气
有什么建议吗?找到了一个解决方法
在RowSelectionModel.js中有一个自定义函数handleMouseDown
handleMouseDown : function(g, rowIndex, e){
if(e.button !== 0 || this.isLocked()){
return;
}
var view = this.grid.getView();
if(e.shiftKey && !this.singleSelect && this.last !== false){
var last = this.last;
this.selectRange(last, rowIndex, e.ctrlKey);
this.last = last; // reset the last
view.focusRow(rowIndex);
}else{
var isSelected = this.isSelected(rowIndex);
if(e.ctrlKey && isSelected){
this.deselectRow(rowIndex);
}else if(!isSelected || this.getCount() > 1){
this.selectRow(rowIndex, e.ctrlKey || e.shiftKey);
view.focusRow(rowIndex);
}
}
},
这里有台词
if(e.ctrlKey && isSelected){
this.deselectRow(rowIndex);
}
所以我需要重写这个函数,并在上面提到的if中添加一些自定义操作