почему IE нужно дважды щелкнуть - PullRequest
2 голосов
/ 10 января 2012

У меня есть этот 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')

1 Ответ

1 голос
/ 10 января 2012

Возможно, немного рефакторинга поможет.Предотвращать использование по умолчанию только тогда, когда это необходимо, в противном случае разрешите функции перейти к событию отправки по умолчанию.

$('.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;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...