Ссылка в раскрывающемся списке выберите не работает IE8 / 9, чтобы открыть раскрывающийся список выберите ссылку, предупреждение работает

0

Кажется, IE8 и 9 дают мне печаль, и я не могу придумать альтернативы.

В Chrome, FF и Safari работает следующее.

Есть два выпадающих списка, каждый из которых содержит две ссылки. Каждая выпадающая кнопка имеет соответствующую кнопку "Купить сейчас". Когда выпадающий выбор сделан, url загружается через jquery, и когда пользователь нажимает кнопку "Купить сейчас", новое окно открывается соответствующему выпадающему списку.

В IE8/9, когда пользователь выбирает раскрывающийся список и нажимает кнопку "Купить сейчас", он выдает предупреждение о том, что выбор не был выполнен.

См. JSFiddle Demo

Jquery:

    $(".buyNow").on("click", function (e) {
     var url = $(e.target).parent().children().find("[data-active]").data("val");
    if (url) {
        window.open(url, "_blank");
    } else {
        window.alert("Please select a bag size.");
    }
})
  • 0
    Что за горе? Что происходит? Вы получаете сообщение об ошибке?
  • 0
    у меня отлично работает в IE
Показать ещё 3 комментария
Теги:
window.open
internet-explorer-9
internet-explorer-8

1 ответ

1
Лучший ответ

Проблема в том, что e.target отличается от других браузеров. Таким образом, родитель - это другой элемент, и он не может найти attriute, поскольку он не является дочерним. Простая отладка покажет его.

Используйте .closest(".someClass") чтобы получить элемент, за которым вы находитесь, вместо .parent().

или изменить

var url = $(e.target)...

в

var url = $(this)...
  • 0
    Спасибо @ epascarell0! Это был трюк.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню