javascript - 为什么IE需要我点击两次

标签 javascript jquery internet-explorer

我有这个 jQuery

    $('.billing_info').click(function(e){
        e.preventDefault();
        if(($('.shipping_selection').length) > 0){
            if ($('.shipping_selection:checked').length == 0){
                $('.hide_error').show();
                $("html, body").animate({ scrollTop: $(".hide_error").offset().top }, "slow");
                $(".hide_error").effect("highlight", {}, 4000);
                return false;
            }else{
                $('.billing_info').unbind("click");
                $('.billing_info').click();
            }   
        }else{
            $('.billing_info').unbind("click");
            $('.billing_info').click();
        }
    });

除 IE 外,它在所有浏览器中都运行良好。我使用的是 IE8,用户需要点击按钮两次才能让按钮接受点击事件,即使点击了一个单选按钮 $('.shipping_selection')

最佳答案

也许稍微重构一下会有所帮助。仅在需要时防止默认,否则让函数传递给默认提交事件。

$('.billing_info').click(function(e){
    if(($('.shipping_selection').length) > 0 && $('.shipping_selection:checked').length == 0){
            e.preventDefault();
            $('.hide_error').show();
            $("html, body").animate({ scrollTop: $(".hide_error").offset().top }, "slow");
            $(".hide_error").effect("highlight", {}, 4000);
            return false;
    }
});

关于javascript - 为什么IE需要我点击两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797367/

相关文章:

javascript - ie7 脚本错误行 0 字符 0 代码 0 jquery 1.10.1

javascript - Extjs 6 ItemSelector 如何以编程方式绘制行

javascript - 将 VBscript 函数作为参数传递给 jQuery click() 函数

javascript - jQuery .detach/append 在 if/else 语句中

javascript - 对象设置为 ng-model 的 ng-options

JQuery 删除列表项的最后数量

javascript - 提交 JQuery 表单 $.post() 处理成功时显示的消息

javascript - 如何在 NVD3.js 饼图中显示当前选定系列的总和?

c# - Process.kill() 在 Windows 7 32 位中被拒绝,即使具有管理员权限

css - 使用 CSS 将文本链接替换为 "Buy-It"按钮。想要隐藏 a.class 但 a.class :before to be visible. 在 IE 中不起作用。为什么?