2013-02-25 79 views
1

我试图写一个函数,从篮中转移物品并将其推入购物车。 我目前面临的问题是,尽管此代码在FF和Chrome中正常工作,但它不会识别产品。IE问题与jquery和JS

很多预先感谢。

var modals_pool = {}; 

$('.deal_order_btn').live('click', function (e) { 
    e.preventDefault(); 

    deal = {}; 
    deal.id = $(this).attr('deal_id'); 
    deal.title = $(this).attr('deal_title'); 
    deal.items = []; 
    additional_total = 0; 
    $(this).parents('.deal_item_holder').find('table.deals_item_').each(function (index, ele) { 
     item = {}; 
     item.id = $(ele).attr('deal_item_id'); 
     item.name = $(ele).find('.deal_item_name a').text(); 
     if ($(ele).find('select.product').length) { 
      item.product = $(ele).find('select.product').val(); 
     } 
     if ($(ele).find('select.product').length === 0) { 
      item.product = $(ele).find('.deal_item_name a').attr('rel'); 
     } 
     if ($(ele).find('select.size').length) { 
      item.size = $(ele).find('select.size option:selected').text(); 
     } 
     if ($(ele).find('.static_size').length) { 
      item.size = $(ele).find('.static_size').text(); 
     } 


     deal_object = modals_pool[$(ele).attr('container_id').replace(/ /g, '_') + "_" + $(ele).find('.product').val()]; 

     //console.log(deal_object); 

     if ($(ele).find('select.product').length && deal_object) { 




      item.product_name = $(ele).find('select.product :selected').text(); 

      item.product_topping = deal_object.selected_topping_normal; 
      item.base = deal_object.default_base; 


      item.product_double_topping = deal_object.selected_topping_double; 


      item.product_total = deal_object.total; 
      additional_total += deal_object.total; 



     } 


     deal.items.push(item); 

    }); 



    deal.total = $(this).parents('li:first').find('span.customize_total_deal').text(); 
    deal.orginal = $(this).parents('li:first').find('span.customize_total_deal').attr('orginal_total'); 
    deal.addtional_topping_total = additional_total; 

    $.post(window.location.href, { 
     'action': '_saveUserDeal', 
      'deal_details': JSON.stringify(deal) 
    }, function (data) { 
     if (data.code) { 
      var date = new Date(); 
      var milseconds = date.getTime(); 
      $('.basket_box_holder').load(root + store_name + '/get_cart?' + milseconds); 
     } 
    }); 

}); 
+0

你使用的是什么版本的jQuery? 'live()'方法从1.7开始被弃用,并在1.9 – Boaz 2013-02-25 13:56:14

+0

即时通过使用1.7 atm – ash 2013-02-25 13:59:32

+0

删除,请随时访问此链接的实时版本:http://topspizza.co.uk/public/acton/deals/ – ash 2013-02-25 14:03:21

回答

1

你的脚本上线683断开与错误:

Object doesn't support this action

这是因为项目是在Internet Explorer中的保留关键字8及以下,尝试重命名为别的东西,或使用var关键字在当地申报项目。这可能会解决它:

var item = {}; 

干杯。

+0

非常感谢, – ash 2013-02-25 18:07:12

+0

如果有帮助,你能接受这个答案吗? :) – 2013-02-25 20:55:00