Раньше я использовал Velocity вместе с Salesforce Lightning API 39 без проблем мэра, потому что LockerService был отключен, но, начиная с версии 40 API, он включен, и в результате этого Velocity больше не работает.Это мой код:
afterScriptsLoaded: function(cmp, event, helper){
var dropdownMenu = cmp.find('dropdown-menu').getElement();
var icon = cmp.find('icon').getElement();
var menu = cmp.find('dropdown').getElement();
// show submenu in desktop
menu.addEventListener('mouseenter', function(e){
if (dropdownMenu.style.display === 'none' && window.matchMedia('screen and (min-width: 768px)').matches) {
Velocity(dropdownMenu, 'slideDown', {duration: 200});
this.classList.add('open');
console.info('open - desktop');
}
});
// hide submenu in desktop
menu.addEventListener('mouseleave', function(e){
if (dropdownMenu.style.display !== 'none' && window.matchMedia('screen and (min-width: 768px)').matches) {
Velocity(dropdownMenu, 'slideUp', {duration: 200});
this.classList.remove('open');
console.info('close - desktop');
}
});
// show/hide submenu in mobile
icon.addEventListener('click', function(e){
if (dropdownMenu.style.display === 'none' && window.matchMedia('screen and (min-width: 768px)').matches == false) {
Velocity(dropdownMenu, 'slideDown', {duration: 200});
menu.classList.add('open');
Velocity(icon,{rotateZ:"180deg"}, {duration: 400, easing: [500,20] });
console.info('open - mobile')
}else if(dropdownMenu.style.display !== 'none' && window.matchMedia('screen and (min-width: 768px)').matches == false){
Velocity(dropdownMenu, 'slideUp', {duration: 200});
Velocity(icon, 'reverse');
menu.classList.remove('open');
console.info('close - mobile')
}
});
}
Это то, что я получаю в консоли:
Скорость: Первый аргумент (SecureElement: [объект HTMLUListElement] {ключ: {"пространство имен": "c"}}) не было картой свойств, известным действием или зарегистрированным перенаправлением.Отмена.
Кто-нибудь знает, возможно ли объединить Velocity с LockerService?