Евгений: здесь особо он и не нужен, если вы в опциях не указывали порт, то он 3000, весь конфиг надо делать в nginx, можно даже не пробрасывать порт, а сделать поддомен dev.site.ru и с него направлять на localhost:3000
Евгений:
3000 - порт по умолчанию, выдаваемый browserSync если разработчик не указал иной порт.
Почему bs выдает порт? Потому что он встраивает скрипт web-сокетов, чтобы посылать на фронт команду перезагрузки, он не может "вклиниться" в дефолтный маршрут nginx -> application, поэтому он проксирует со своего порта все запросы на nginx -> application, получает от него ответ и возвращает ответ на соединение по своему порту.
По 80-порту по которому обычно открывается сайт для всех bs работать не будет, если все не перенастроить.
действует на все элементы потому что у вас в mouseenter также как и в leave стоит выборка "всех" $(".submenu-p-groups"), а надо только в данном контейнере li, поэтому внутри mouseenter вы используете $(this) (это .submenu-p-link') и "поднимаетесь" выше до контейнера li .parents('li') и в нем ищете выборку groups - .find(".submenu-p-groups") и удаляете закрытый класс closed, и добавляете открытый opened.
При этом, если вдруг по какой то причине mouseleave сработает позже - то содержимое mouseenter можно обернуть в setTimeout:
…ion{
var that = this;
setTimeout(function(){
$(that).parents…
}, 100)
}
Thores: просто у вас действие ко всем элементам, а здесь принцип в том, что по наведению на элемент вы поднимаетесь в общий контейнер, в котором находятся элементы для каких то действий, находите их и применяете к ним действие. Но если например надо сбросить состояние таких элементов в других контейнерах, то надо сперва по общему селектору сбросить это состояние, и только после этого в контейнере искать узкую выборку.