san_jorich
@san_jorich
Творческий кодер

Как имитировать выбор select?

Здравствуйте!
Задумал я заменить в WC стандартные select-ы вариативных товаров на ползунки. Реализовал.
Даже скрыл стандартные выпадающие списки..
И при изменении значения ползунка selected option в списках тоже меняется..
А добавить в корзину все равно не могу - потому что..видимо..по догадке.. активация кнопки работает только при ручном выборе в списках атрибутов.

Получается, что без "ручного ввода" WC не отрабатывает ни по цене ни по смене выбранного варианта
Что делать? Как быть?
Кусок кода, если пригодится..

jQuery.each( response, function( product, data ) {
			    	console.log(data);
			    	var newdiv = '<label>'+data.label+'</label><div id="attr_'+data.slug+'_slider" opt="'+data.slug+'" class="attr_slider"></div>';
			    	jQuery('#product_attr').append(newdiv); 
			    	jQuery(document).find('select#'+data.slug+' option:contains("обычно")').prop('selected', true);
			    	var val = data.values;
			    	var src = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTCWRzdOvbe2gjvayg5POvNhLAqBt3Sen5Z4Syy1sjBYr-7Gxg&s';
			    	jQuery(document).find('div#attr_'+data.slug+'_slider').each(function(){ 			    						    	
				    	jQuery(this).slider({ min: 0, max: val.length-1, value: 2 }).slider("pips", { rest: "label",  labels: val }).on("slidechange", function(e,ui) {
				    		
				    		needle_id = jQuery(this).attr("opt"); needle_val = jQuery(this).find('.ui-slider-pip-selected').text();				    	
				    		jQuery(document).find('select#'+needle_id+' option:contains("'+needle_val+'")').prop('selected', true);				    		
				    		
				    		jQuery(this).find('.ui-slider-handle').css([	val => ({ opacity: (val/100)+(val/4) }),  val => ({ filter: `grayscale( (val/100)+(val/4) )` }),][this.dataset.index](ui.value));
						}).attr('data-index', i => i).find('.ui-slider-handle').html(`<img src="${src}">`);	
						
				    });			    	
			    });


Пример в действии
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
Здравствуйте Александр
Все что нужно сделать так это добавить собитие изменения select-а
скрин
5f19e39490d88928413890.jpeg
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы