Заставьте Velocity.js работать вместе с Salesforce Lightning API 44 - PullRequest
0 голосов
/ 28 октября 2018

Раньше я использовал 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?

...