$('.menu__list').on('mouseleave mouseenter click', function (e) {
if( e.relatedTarget === null && e.type !== 'click' ) return;
switch( e.handleObj.origType ) {
case 'mouseleave': $(this).find('.middleMenu__drop').slideUp(100); break;
case 'mouseenter': $(this).find('.middleMenu__drop').slideDown(100); break;
case 'click': $('.middleMenu__drop').slideToggle(100); break;
}
});
Это работает как задумано.
UPD Нет, есть глюк со сворачиванием меню. Если открыть меню, а потом тапнуть куда-нибудь мимо, то меню свернется, а если повторно тапнуть, что бы меню развернулось, то оно развернется и тут же свернется