Нужна взаимозависимая кнопка CHANGE и выберите функциональность CLICK с помощью jQuery. Мне нужно объединить их на документ готов? - PullRequest
0 голосов
/ 30 апреля 2020

Сценарий в порядке, если рассматривать всю функциональность, но единственная проблема - исчезновение значения опции выбора (я думаю, что значение #selectbox неправильно выбирает значение) при выборе из опции или с помощью кнопки. В основном мне нужно равняться .btn-itemlist и #selectbox значению и перемещать их обоих одновременно. Учитывая эти значения, они генерируются динамически, и общее количество обоих значений одинаково при загрузке. Я хочу, чтобы они оба зависели друг от друга в document.ready и остались прежними, щелкая и выбирая.

$(document).ready(function() {
$('.btn-itemlist[value="0"]').click();

$(".btn-itemlist").click(function(e) {
   var _self = $(this),
   value = _self.val();
  $("#selectbox").val(value).trigger('change');
});

$('#selectbox').change(function(e) { 
   var _self = $(this),
   value = _self.val();
    $('.btn-itemlist[value="'+ value+'"]').click();
});

});

Ранее я создал следующий скрипт, и он прекрасно работает, только когда одна функция используется либо #selectbox, либо .btn-itemlist click(). Просто вы можете сказать, что выбор становится зависимым от клика или кликает по нему, но оба они не являются взаимозависимыми. Когда я использую их оба с документом on.load, выполняется только первая часть (в данном случае .btn-itemlist) и jQuery начинает выдавать ошибку:

"Uncaught RangeError: Максимальный размер стека вызовов Превышен "

, и эта ошибка дополнительно увеличивается при каждом нажатии или выборе параметра.

$(".btn-itemlist").click(function() {
  q = ($(this).attr('value')),
  $("#selectbox").val(q).trigger('change');
});

$('#selectbox').change(function() 
{ 
val1 = $("#selectbox").val();
$('.btn-itemlist[value="'+ val1+'"]').click();
});

Вот JSFiddle JS Fiddle Demo

1 Ответ

0 голосов
/ 30 апреля 2020

просто изменить

$(".btn-itemlist").click(function(e) {
   var _self = $(this),
   value = _self.val();
  $("#selectbox").val(value).trigger('change');
});

на

$(".btn-itemlist").click(function() {
  q = $(this).attr('value');
  $("#selectbox").prop('selectedIndex', q);
...