На сайте есть выбор размера товара, реализованный через <select>
<div class="item_sizes" >
<label>Размер:
<select name="sizes" id="sizes" class="item_sizes">
<option value="">-- выбрать --</option>
<option value="50 (L, 4)">50 (L, 4)</option>
<option value="52 (XL, 5)">52 (XL, 5)</option>
</select>
</label>
</div>
За обработку нажатия и передачу выбранного размера отвечает Javascript функция
$('.item_sizes').click(function(){
var v=$(this).val();
if(v){
$(this)
.parent()
.parent()
.parent()
.find('.button.cart')
.attr('size',v);
}
});
Выбор размера состоит минимум из двух кликов: 1 клик на item_sizes для раскрытия списка размеров. 2 клик на нужный размер (например 52 (XL, 5) )
Если мы используем браузер на Windows (например Chrome), то функция работает и размер передается.
Если мы используем Android, Mac или IPhone, то сразу размер не передастся, а передастся только после повторного нажатия на item_sizes (можно нажать как на выпадающий список , так ни на слово Размеры:) Тогда функция срабатывает заново и размер передается.
Как переписать функцию, что бы при использовании любой системы выбранный размер сразу передавался без дополнительных кликов?
Возможно, причина такого поведения кроется в отличающейся реализации выпадающих списков на мобильных платформах. Так клик по списку не является кликом по родительскому элементу, потому что список появляется отдельным элементом (по крайней мере на андроид так), поэтому лучше использовать, как Вам уже посоветовали, событие change
$('#sizes').change(function(){
var v=$(this).val();
if(v){/*...*/}
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости