似乎IE8和9让我感到悲伤,我想不出其他选择。
以下适用于Chrome,FF和Safari。
有两个下拉列表,每个下拉列表包含两个链接。每个下拉列表都有自己相应的“立即购买”按钮。当进行下拉选择时,将通过jquery加载URL,当用户单击“立即购买”按钮时,将打开一个新窗口以显示相应的下拉选项。
在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.");
}
})
答案 0 :(得分:1)
问题在于e.target与其他浏览器不同。所以父母是一个不同的元素,因为它不是孩子,所以无法找到属性。简单的调试将显示它。
使用.closest(".someClass")
获取您所追求的元素而不是.parent()
。
或更改
var url = $(e.target)...
到
var url = $(this)...