我有这个 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/