为什么IE需要我点击两次

why does IE need for me to click twice

本文关键字:两次 IE 为什么      更新时间:2023-09-26

我有这个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;
    }
});