IE 11 и ниже и обработчик jQuery

12
Lord Maverik
На сайте с 15.04.2003
Offline
471
1345

В общем проблема у меня. (

Вот страница.

https://redmall.ru/taobao/vse-dlya-remonta/yelektronika-i-aksessuari/gnezda-rozetki/rozetki-s-pereklyuchatelem/_u621839362964.html

При клике на картинку варианта должно быть так:

Только сейчас заметил что в IE не так. В Edge уже так, а вот в IE например 11 нет.

Код такого плана:


<input type="radio" name="equipment" id="1627207_60092" value="60092" base="1627207">
<label for="1627207_60092"><img src="https://img.alicdn.com/bao/uploaded/i1/645225636/TB2AZallVXXXXXMXXXXXXXXXXXX_!!645225636.jpg" alt="Золото" title="Золото"></label>

На jquery стоит 2 обработчика:


$(document).on("click",".equipment-block img",function() {

Этот код срабатывает.


$('.equipment-block input:radio, .variations-block input:radio').on({

А вот этот уже нет. Как я понял IE не считаем клик по label кликом по input.

Как заставить работать это дело в ИЕ тоже?

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
S
На сайте с 13.10.2014
Offline
171
#1

попробуйте

input:radio

заменить на input[type="radio"]

у всех версий ie не всё в порядке с этим

ах да.. вот еще какая штука.

согласно спецификации id должен обязательно начинаться с буквы. Иначе корректность работы не гарантируется

S
На сайте с 30.09.2016
Offline
469
#2
Lord Maverik:
Как я понял IE не считаем клик по label кликом по input.

Да вроде как уже давно считает.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
dma84
На сайте с 21.04.2009
Offline
168
#3

Может стоит на событие change обработчик повесить?

Lord Maverik
На сайте с 15.04.2003
Offline
471
#4
silicoid:
заменить на input[type="radio"]

так надеялся, не помогло.

dma84:
Может стоит на событие change обработчик повесить?

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

S
На сайте с 30.09.2016
Offline
469
#5

Lord Maverik, а вот лично я во втором блоке вообще никакого click не вижу. Тут люди не стесняясь кучу хлама на целую страницу вываливают, а Вы на нужном коде место экономите.

Lord Maverik
На сайте с 15.04.2003
Offline
471
#6

Sitealert,


$('.equipment-block input[type="radio"], .variations-block input[type="radio"]').on({
click: function(){
alert(1);
}
});



---------- Добавлено 30.11.2017 в 19:31 ----------

Не, дело точно не в формате записи.

Сделал первый блок таким:


$('.equipment-block img').on({
click: function(){
$('.picture-product-block #largeImg').attr('src', $(this).attr('src'));
}
});

Он нормально срабатывает. дело похоже именно в том, что IE не считает клик по label кликом по input.

---------- Добавлено 30.11.2017 в 19:37 ----------

Заменил

.equipment-block input[type="radio"]

на

.equipment-block label

срабатывает. Вот зараза же, а надо именно на input (((

S
На сайте с 30.09.2016
Offline
469
#7

Lord Maverik, у меня Ваш код срабатывает в IE8.

LEOnidUKG
На сайте с 25.11.2006
Offline
1752
#8

В IE11 не пашет.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Lord Maverik
На сайте с 15.04.2003
Offline
471
#9

В общем решил так проблему, будет этот IE не ладен.

Назначил 2 события, хотя можно было уже и 1 под все версии обойтись.

Назначил клик на label и на input.

На label проверяю, что это IE 7-11, и выполняю код только в этом случае.


if(navigator.userAgent.match(/Trident\/7\./)) {
}

Через triger вызываю клик. Но было бы круто если было бы так просто.

Действие на input пришлось вынести в отдельную функцию и вызывать ее отдельно. Так как тригер при этом делает "как бы клик", т.е. css например применяется, а on click на input не срабатывает.

На onclick для input, проверяю что это не IE 7-11 и выполняю код как и раньше, вынеся в отдельную функцию.

S
На сайте с 30.09.2016
Offline
469
#10

Да, именно в IE11 случаются всякие чудеса с изображениями в качестве label.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий