Сделайте так, чтобы Velocity.js работал вместе с Salesforce Lightning API 44

В прошлом я использовал 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]{ключ: {"пространство имен":"с"} }) не был картой свойств, известным действием или зарегистрированным перенаправлением. Aborting.

Кто-нибудь знает, возможно ли совместить Velocity с LockerService?

0 ответов

Другие вопросы по тегам