Уже задавала подобный вопрос (
https://toster.ru/q/471376), однако немного продвинулась в этом вопросе и возникли другие трудности. Есть jQuery код,
function click() {
$('.select_list_current').on('click', function(){
// alert(1);
$(this).parent('.select_list_wrapper').toggleClass('open');
$(this).parent().find('.select_list').slideDown("slow");
});
$(document).on('click',function (event) {
if ($(event.target).closest('.select_list_wrapper').length == 0 && $(event.target).attr('id') != 'select_list_current') {
$('.select_list_wrapper.open').toggleClass('open');
$(this).parent().find('.select_list').hide("slow");
}
});
$('.select_list_radio').on('click', function(){
var current = $(this).find('label span').text();
$(this).parents('.select_list_wrapper').find('.select_list_current .select_list_current_item').text(current);
$(this).parents('.select_list_wrapper').removeClass('open');
$(this).parents('.select_list_wrapper').find('.select_list').css('display', 'block');
});
}
который навешивает событие на следующую верстку
<div class="selected_relative">
<div class="select_list_wrapper ">
<div class="select_list_current">
<span class="label">Сортировать:</span>
<span class="select_list_current_item">По популярности</span>
</div>
<div class="select_list">
<div class="select_list_radio"><input type="radio" id="by_popular" name="sort_list" checked><label for="by_popular"><span>По популярности</span> </label></div>
<div class="select_list_radio"><input type="radio" id="by_price" name="sort_list"><label for="by_price"><span>По цене</span> </label></div>
<div class="select_list_radio"><input type="radio" id="by_date" name="sort_list"><label for="by_date"><span>По новизне</span> </label></div>
</div>
</div>
</div>
Данные селекты встречаются на каждой страницы сайта.
Для того, чтобы функция `click ()` сработала я ее вызываю при загрузке страницы
$(window).load(function() {
click();
});
И в своем компоненте
updated() {
this.$nextTick(function () {
setTimeout(() => {
click();
}, 1000)
})
},
Но срабатывает это в 100% только когда я страницу перезагружаю. При обычном "гулянии" по маршрутам селекты срабатывают через раз.