IE问题与jquery和JS
问题描述:
我试图写一个函数,从篮中转移物品并将其推入购物车。 我目前面临的问题是,尽管此代码在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);
}
});
});
答
你的脚本上线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
你使用的是什么版本的jQuery? 'live()'方法从1.7开始被弃用,并在1.9 – Boaz 2013-02-25 13:56:14
即时通过使用1.7 atm – ash 2013-02-25 13:59:32
删除,请随时访问此链接的实时版本:http://topspizza.co.uk/public/acton/deals/ – ash 2013-02-25 14:03:21