2015-04-18 58 views

回答

2

這是因爲網格單元或單元格編輯器事件(鼠標懸停,點擊或其他)在另一個網格的上下文(父母或祖先被觸發)。在這裏,您可以看到如何停止從冒泡的事件:

Ext.require(['Nested.view.NestedGrid'], function() { 
    var nGrid = Ext.create({ 
     type: 'nestedgrid', 
     renderTo: div 
    }); 

    // prevent bubbling of the events 
    nGrid.getEl().swallowEvent([ 
     'mousedown', 'mouseup', 'click', 
     'contextmenu', 'mouseover', 'mouseout', 
     'dblclick', 'mousemove' 
    ]); 

}); 
+0

謝謝。這個解決方案適合我:) –

0

查找EXT-ALL-debug.js源誤差的方法,然後創建一個新的JS進入「EXT-所有*的js。」加載後位置,我的版本是:Ext JS 6.2.0.981

核心代碼是:Object。 prototype。功能和xxx != null

後綴代碼:

Ext.event.publisher.Dom.prototype.unsubscribe = function (element, eventName, delegated, capture) { 
    var me = this, 
     captureSubscribers, bubbleSubscribers, subscribers, id; 
    if (delegated && !me.directEvents[eventName]) { 
     captureSubscribers = me.captureSubscribers; 
     bubbleSubscribers = me.bubbleSubscribers; 
     subscribers = capture ? captureSubscribers : bubbleSubscribers; 
     if (subscribers != null && subscribers[eventName]) { 
      --subscribers[eventName]; 
     } 
     if (me != null && bubbleSubscribers != null && captureSubscribers != null && !me.handles[eventName] && !bubbleSubscribers[eventName] && !captureSubscribers[eventName]) { 
      // decremented subscribers back to 0 - and the event is not in "handledEvents" 
      // no longer need to listen at the dom level 
      this.removeDelegatedListener(eventName); 
     } 
    } else { 
     subscribers = capture ? me.directCaptureSubscribers : me.directSubscribers; 
     id = element.id; 
     subscribers = subscribers[eventName]; 
     if (subscribers[id]) { 
      --subscribers[id]; 
     } 
     if (!subscribers[id]) { 
      // no more direct subscribers for this element/id/capture, so we can safely 
      // remove the dom listener 
      delete subscribers[id]; 
      me.removeDirectListener(eventName, element, capture); 
     } 
    } 
}; 
0
Ext.define('MyApp.overrides.GridColumn', { 
    override: 'Ext.grid.column.Column', 

    show: function() { 
     if (!this.getRefOwner()) { 
      return; 
     } 
     this.callParent(arguments); 
    } 
}); 

下面是這個解決辦法,我使用。