【问题标题】:Jquery script works in all browsers except IE8 and lowerJquery 脚本适用于除 IE8 及更低版本之外的所有浏览器
【发布时间】:2011-07-24 15:46:20
【问题描述】:

我正在经营一家电子商务商店,并且使用以下脚本将商品添加到购物车而无需重新加载页面。它适用于包括 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;
    });
});

【问题讨论】:

  • 你试过e.preventDefault()吗?

标签: jquery internet-explorer-8


【解决方案1】:

两个提示:

  1. e.preventDefault()添加到处理程序的开头。处理程序中的任何错误都将导致return false 不执行并且浏览器执行默认操作,除非在错误发生之前调用了preventDefault
  2. 避免使用实时提交处理程序,它们是在旧版 IE 中通过点击处理程序模拟的(因为提交事件不会冒泡),这可能会带来各种好处(例如,请参阅 bug 7061)。

【讨论】:

  • 非常感谢您的帮助!来自 Tgr 的第 2 点尤其是因为它让我朝着正确的方向前进。这是修复它的方法- $('#cart_quantity').submit(function() { 而不是我之前尝试过的 .live('submit' 。它现在可以在 IE 7-9 中运行,当然也可以在其他浏览器也是如此。
【解决方案2】:

尝试在提交函数中添加event.preventDefault()

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

【讨论】:

  • 好的,我尝试了 event.preventDefault() 但它仍然做了同样的事情。就像浏览器只是忽略了传输效果和脚本一样,只是执行默认行为。 IE 开发人员工具中也不会抛出任何错误。这很奇怪,因为我在整个网站上都使用 jquery,而且它总是适用于不同的浏览器。任何想法为什么 IE 8 及以下版本会忽略此脚本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 2012-07-16
相关资源
最近更新 更多