@Nohaga

Как избежать зацикливания при trigger('change')?

Использую select2. Есть список с разделами сайта, при выборе раздела приходит переход по URL, нужно что бы при входе в раздел сайта, менялось значение в списке на текущий раздел
$('.js-example-basic-single').val('/catalog/2/').trigger('change');
Но происходит зацикливание, при переходе применяется тригер, при срабатывании триггера происходит переход. Вот не знаю как сделать, сайт на PHP конечно. Другие методы кроме ('.js-example-basic-single').val('/catalog/2/').trigger('change') с select2 не срабатывают, типа просто сделать selected без триггера не получается. С обычным селектом проблем нет, просто всё уже в стиле select2 сделано.
Вот код:
<script>
$(document).ready(function() {
    $('.js-example-basic-single').select2();
	$('.js-example-basic-single').val('/catalog/2/').trigger('change');
});
</script>
</head>
<body>
<select class="js-example-basic-single" name="state" onchange="top.location=this.value">
 <option value=""></option>
    <option value="/catalog/1/">1</option>
    <option value="/catalog/2/">2</option>
</select>
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 1
onchange="top.location=this.value" убрать, и навешивать событие позже смены значения:

$('.js-example-basic-single').val('/catalog/2/').trigger('change').change(function() { 
 top.location=this.value;
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы