0

看来 IE8 和 9 让我很伤心,我想不出替代方案。

以下适用于 Chrome、FF 和 Safari。

有两个下拉列表,每个包含两个链接。每个下拉菜单都有自己对应的“立即购买”按钮。进行下拉选择时,会通过 jquery 加载 url,当用户单击“立即购买”按钮时,会打开一个新窗口以显示相应的下拉选择。

在 IE8/9 中,当用户选择下拉菜单并单击“立即购买”按钮时,它会引发未进行选择的警报。

参见 JSFiddle 演示

查询:

    $(".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.");
    }
})
4

1 回答 1

1

问题在于 e.target 与其他浏览器不同。所以 parent 是一个不同的元素,它找不到属性,因为它不是孩子。简单的调试就会显示出来。

用于.closest(".someClass")获取您所追求的元素,而不是.parent().

或改变

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

var url = $(this)...
于 2013-10-23T22:34:27.253 回答