Jquery脚本适用于IE8及更低版本以外的所有浏览器

时间:2011-07-24 00:05:41

标签: jquery internet-explorer-8

我正在运营一家电子商务商店,以下脚本用于将商品添加到购物车而不会重新加载页面。它适用于所有主流浏览器,包括IE9,但它只是使用IE8及以下版本重新加载默认页面。没有错误显示,但它重新加载它不应该做的页面。这是代码 -

$(document).ready(function() {
    $('#cart_quantity').live('submit', function() {
        $('#button_submit').attr('disabled', 'disabled');

        var options = {};

        options = { to: "#ajax_cart", className: 'ui-effects-transfer' };

        $("#button_add_cart").effect('transfer',options,1300);

        var datas_form = $('#cart_quantity').serializeArray();
        $.ajax({
            url:'ajax_add_cart.php',
            data: datas_form,
            type: 'POST',
            success: function(data) {
                var datas = data.split("|");
                setTimeout(function() {
                    $('#content_products').html(datas[0]);
                    $('#content_total').html(datas[1]);
                    $('#fila_' + datas[2]).fadeOut("fast").fadeIn("fast").fadeOut("fast").fadeIn("fast").fadeOut("fast").fadeIn("fast");
                    $('#content_total').fadeOut("fast").fadeIn("fast").fadeOut("fast").fadeIn("fast").fadeOut("fast").fadeIn("fast");
                }, 1300);
            }
        });
        $('#button_submit').attr('disabled', '');
        return false;
    });
});

2 个答案:

答案 0 :(得分:1)

两个提示:

  1. e.preventDefault() 添加到处理程序的开头。处理程序中的任何错误都会导致return false未执行,并且浏览器会执行默认操作,除非在错误之前调用
  2. 避免使用实时提交处理程序,它们通过点击处理程序在旧IE中进行模拟(因为提交事件不会冒泡),这会导致各种额外津贴(例如bug 7061)。

答案 1 :(得分:0)

尝试在提交功能中添加event.preventDefault()

来源:http://api.jquery.com/event.preventDefault/