JS Total Count未在IE上更新

时间:2014-11-18 05:26:57

标签: javascript jquery internet-explorer canjs

我遇到了IE的问题,如果我检查列表中的项目,它不会更新购物车上的总价值。它适用于所有其他浏览器,但不适用于IE。

默认情况下,该按钮为PAY ALL,但如果您选择一个项目,它将更新总值并更改按钮,这是执行该操作的功能:

update: function() {
    if (this.paying > 0) {
        this.element.find('.on_selected').show()
                .find('h2 span').text('$' + this.paying.toFixed(2));
        this.element.find('.on_selected_none, .pay_all').hide();
        this.element.find('.continue').css('display', 'block');
    } else {
        this.element.find('.on_selected_none, .pay_all').show();
        this.element.find('.on_selected, .continue').hide();
    }
}

这是我的整个JS类

var Ticket = can.Control.extend({
/**
 * @var int total
 */
total: 0.00,
/**
 * @var int paying 
 */
paying: 0.00,
/**
 * 
 * @param {type} element
 * @param {type} options
 */
init: function(element, options) {
    var self = this;
    element.find(':checkbox').each(function() {
        self.total += parseFloat($(this).val());
        if ($(this).is(":checked")) {
            self.add($(this));
        }
    });
    this.update();
},
/**
 * 
 * @param dom el
 */
add: function(el) {
    var v = parseFloat(el.val());
    this.paying += v;
},
/**
 * 
 * @param dom el
 */
substract: function(el) {
    var v = parseFloat(el.val());
    this.paying -= v;
},
/**
 * Event Listener
 * @param dom el
 */
':checkbox change': function(el) {
    if (el.is(":checked")) {
        this.add(el);
    } else {
        this.substract(el);
    }
    this.update();
},
'table tr div.row click': function(tr,e){
//        console.log();
//        if($(e.target).is('label')){ return; }
        tr.parent().prev().find('input[type=checkbox]').trigger('click');
    },
    'table .checkbox-big label click': function(tr){
//        console.log(tr.prev());
//        tr.prev().trigger('click');
//        tr.find('label').trigger('mouseover');
    },
    /**
     * Form button event lister
     * 
     * Submits form
     */
    'a.button click': function(btn, ev) {
        ev.preventDefault();
        if (btn.hasClass('pay_all')) {
            this.element.find(':checkbox').each(function() {
                $(this).trigger('click');
            });
            this.element.submit();
        }else{
            if(this.paying > 1){
                this.element.submit();
            }else{
                alert('Please select tickets to proceed.');
            }
        }
    },
    /**
     * Based on user selection message and button gets changed
     */
    update: function() {
        if (this.paying > 0) {
            this.element.find('.on_selected').show()
                    .find('h2 span').text('$' + this.paying.toFixed(2));
            this.element.find('.on_selected_none, .pay_all').hide();
            this.element.find('.continue').css('display', 'block');
        } else {
            this.element.find('.on_selected_none, .pay_all').show();
            this.element.find('.on_selected, .continue').hide();
        }
    }
});

有没有人知道它是否是IE浏览器的常见问题?或者我做错了什么?

你可以在http://driv.io/webwidget/实时查看,搜索板块FXZ4448,纽约州并点击搜索...我的问题出在选票屏幕上

0 个答案:

没有答案