Ваша проблема связана с тем, что при нажатии на кнопку "Наверх", выполняется анимация прокрутки, которая может блокировать обработчик событий для кнопки-дропдауна, создавая таким образом необходимость в повторном нажатии.
Вы можете попробовать использовать метод `setTimeout`, чтобы немного задержать обработку клика на дропдаун, обеспечивая тем самым, что анимация прокрутки завершится перед тем, как обработчик события дропдауна сработает. Вот как это можно сделать:
1. При нажатии на кнопку "Наверх" временно отключаем обработчик для дропдауна.
2. После завершения анимации прокрутки восстанавливаем обработчик.
Вот пример кода, как это можно реализовать:
```javascript
$(function() {
$(window).scroll(function() {
if ($(this).scrollTop() > 115) {
$('#backtotop').fadeIn();
} else {
$('#backtotop').fadeOut();
}
});
$('#backtotop').on('click', function() {
// Отключаем событие click на дропдаун
$('#widget-support').off('click');
$('html, body').animate({
scrollTop: 0
}, 800, function() {
// Включаем событие click на дропдаун обратно после завершения анимации
$('#widget-support').on('click', function() {
$(this).toggleClass('open');
});
});
return false;
});
var support = $(''),
scrollPrev = 0;
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 5) {
$('#widget-support').removeClass('open');
}
});
// Инициализация обработчика для дропдауна
$('#widget-support').on('click', function() {
$(this).toggleClass('open');
});
});
```
Теперь при нажатии на кнопку "Наверх" сначала отключается обработка клика для дропдауна, затем происходит анимация прокрутки, и только после её завершения обработка кликов для дропдауна снова включается. Это должно устранить необходимость в повторном нажатии на кнопку дропдауна.