Как исправить подменю, исчезающую в Chrome 43?Extjs Подменю исчезают на Chrome 43
Использование ExtJS 4.
Это работает в предыдущих версиях Chrome.
Как исправить подменю, исчезающую в Chrome 43?Extjs Подменю исчезают на Chrome 43
Использование ExtJS 4.
Это работает в предыдущих версиях Chrome.
Этот параметр должен быть добавлен, чтобы исправить это.
https://www.sencha.com/forum/showthread.php?301116-Submenus-disappear-in-Chrome-43-beta
(Благодаря festr пользователя на Сенча форуме - подумал, что это должно было быть на SO слишком)
// fix hide submenu (in chrome 43)
Ext.override(Ext.menu.Menu, {
onMouseLeave: function(e) {
var me = this;
// BEGIN FIX
var visibleSubmenu = false;
me.items.each(function(item) {
if(item.menu && item.menu.isVisible()) {
visibleSubmenu = true;
}
})
if(visibleSubmenu) {
//console.log('apply fix hide submenu');
return;
}
// END FIX
me.deactivateActiveItem();
if (me.disabled) {
return;
}
me.fireEvent('mouseleave', me, e);
}
});
В отношении той же ссылке, https://www.sencha.com/forum/showthread.php?301116-Submenus-disappear-in-Chrome-43-beta, вот более общий характер, не- конкретные исправления благодаря посту # 27 по сику:
Ext.apply(Ext.EventManager,{
normalizeEvent: function(eventName, fn) {
//start fix
var EventManager = Ext.EventManager,
supports = Ext.supports;
if(Ext.chromeVersion >=43 && eventName == 'mouseover'){
var origFn = fn;
fn = function(){
var me = this,
args = arguments;
setTimeout(
function(){
origFn.apply(me || Ext.global, args);
},
0);
};
}
//end fix
if (EventManager.mouseEnterLeaveRe.test(eventName) && !supports.MouseEnterLeave) {
if (fn) {
fn = Ext.Function.createInterceptor(fn, EventManager.contains);
}
eventName = eventName == 'mouseenter' ? 'mouseover' : 'mouseout';
} else if (eventName == 'mousewheel' && !supports.MouseWheel && !Ext.isOpera) {
eventName = 'DOMMouseScroll';
}
return {
eventName: eventName,
fn: fn
};
}
});
Это было проверено на моем конце, и я могу подтвердить, что он работает (v 4.1.2.).
Это не работает для 4.0.7 –
Мои извинения. Я должен был заметить, что я применил это исправление к версии 4.1.2. Сообщение обновлено. Спасибо что подметил это. – sutt0n
Сегодня я проверил это в Chrome Canary (45), и он снова работал отлично. Поэтому вы можете переоценить свое обходное решение с будущими версиями Chrome. – matt