Кажется, IE8 и 9 дают мне печаль, и я не могу придумать альтернативы.
В Chrome, FF и Safari работает следующее.
Есть два выпадающих списка, каждый из которых содержит две ссылки. Каждая выпадающая кнопка имеет соответствующую кнопку "Купить сейчас". Когда выпадающий выбор сделан, url загружается через jquery, и когда пользователь нажимает кнопку "Купить сейчас", новое окно открывается соответствующему выпадающему списку.
В IE8/9, когда пользователь выбирает раскрывающийся список и нажимает кнопку "Купить сейчас", он выдает предупреждение о том, что выбор не был выполнен.
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.");
}
})
Проблема в том, что e.target отличается от других браузеров. Таким образом, родитель - это другой элемент, и он не может найти attriute, поскольку он не является дочерним. Простая отладка покажет его.
Используйте .closest(".someClass")
чтобы получить элемент, за которым вы находитесь, вместо .parent()
.
или изменить
var url = $(e.target)...
в
var url = $(this)...