IE的Jquery问题在FF中工作正常

时间:2010-08-18 09:21:05

标签: jquery

你好我有这个代码在Firefox中运行完美,但在IE 8中不起作用,并没有给我任何错误?!

$(".shp_div").change(function () {
  var str = "";
  $("select option:selected").each(function () {
       var countprod =parseInt($("#countprod").val());
        var str2 = $(this).val();
        str2_array = str2.split('|');
        var cost = parseInt(str2_array[0]);
        var cost_extra = parseInt(str2_array[1]);
        if ($("#countprod").val()>1) {
        str = parseInt(((countprod-1)*cost_extra) + cost);
        } else{
        str = cost;
      }});
  $(".csq_item2").text(str);
   var total =parseInt($("#subtotal").val());
  var shipping=parseInt(str + total);
  $(".price_total").text(shipping);
})
.change();

为了获得“全图”,请访问:http://poshsunglasses.net/21-Bottega_Veneta-B.V.88.html并添加到购物车中,然后在购物车页面中尝试选择FF中的运输国家/地区进行计算。

谢谢

2 个答案:

答案 0 :(得分:3)

您的问题是您将更改事件绑定到DIV。 div没有真正的变化事件。也许在FF和chrome中,选择更改事件会泄漏到div,但在IE中却没有。

尝试将更改事件放在select(或其他输入)而不是div。

顺便说一下:你为什么选择这个?什么时候只能选择一个?

我会这样做:给mu selectlist一个id:

<select name="shipping" id="shipping">

$("#shipping").change(function () {
    var str2 = $("option:selected","#shipping").val().split('|');
    var cost = parseInt(str2_array[0]);
    var cost_extra = parseInt(str2_array[1]);
    //Go on from here
});

PS:如果您要将选择列表中的任何值用作发送到后端的信息。我会使用唯一ID代替此符号来防止出现问题,并将价格值放在一个额外的参数中:

<option value="56411-416(unique ID)" price="25|10">Country</option>

答案 1 :(得分:0)

我改变了

$(".shp_div").change(function () {

$(".shippinginfo").change(function () {

正在运作