0

我在 onclick 上创建了一个事件处理程序,IE 9,8,7 事件仅在我打开控制台时才开始工作,当我关闭它时也会工作。我怎么解决这个问题?谢谢!有我的代码:

function changeCheck(id) // onClick функция акт/деакт. checkbox
{
    //checkbox = $('span#'+id).children().eq(0); // получаем checkbox в объект
    checkbox = $('span#'+id).children().eq(0); // получаем checkbox в объект
    console.log(checkbox);
    if(checkbox.attr('rel') !='nosumm') 
    {
        var totalSum = parseInt($('div#stoim').children().text()); // получаем начальную стоимость        
        if(!checkbox.attr('value').length) // если кликнули по "платежным системам" 
        {
            if((checkbox).is(':checked') == false) // если еще не отмечено, то отмечаем
            {
                checkbox.checked=true;
                $('span#'+id).css('background-position','0 -22px');
                if(checkbox.attr('checked','checked'))
                {
                    $('div#type_plati').slideDown();
                }
            }
            else // если checkbox отмечен
            {
                $('span#'+id).css('background-position','0 0');
        for(var key in paysystem)
        {
                    if($('input#choise'+paysystem[key]).attr('value') && $('input#choise'+paysystem[key]).is(':checked')==true)
                    {
            //console.log($('input#choise'+paysystem[key]).attr('value'));
            //console.log($('input#choise'+paysystem[key]).is(':checked'));
            totalSum = totalSum - parseInt($('input#choise'+paysystem[key]).attr('value'));         
                    }
                    $('span#niceCheckbox'+paysystem[key]).css('background-position','0 0');
                    $('span#niceCheckbox'+paysystem[key]).children().eq(0).removeAttr('checked');
                }
                $('input#subTotal').val(totalSum); // Записуем финальную цену на отправку
                $('div#stoim').children().text(totalSum);           
                if(checkbox.removeAttr('checked')) $('div#type_plati').slideUp(); 
            }        
        }
        else
        {
            if((checkbox).is(':checked') == false) // если еще не отмечено, то отмечаем
            {
                checkbox.checked=true;
                $('span#'+id).css('background-position','0 -22px');
                checkbox.attr('checked','checked');
                if(checkbox.attr('checked','checked'))
                {
                    totalSum = totalSum + parseInt($(checkbox).attr('value'));
                    $('div#stoim').children().text(totalSum);
                }
            }
            else // если checkbox отмечен
            {
                $('span#'+id).css('background-position','0 0');
                if(checkbox.removeAttr('checked'))
                {
                    totalSum = totalSum - parseInt($(checkbox).attr('value'));
                    $('div#stoim').children().text(totalSum);
                }
             } 
            $('input#subTotal').val(totalSum); // Записуем финальную цену на отправку
            $('div#stoim').children().text(totalSum);           
        }
    }
    else // обычные checkbox
    {
        if((checkbox).is(':checked') == false) // если еще не отмечено, то отмечаем
        {
            checkbox.checked=true;
            $('span#'+id).css('background-position','0 -22px');
            checkbox.attr('checked','checked');
        }
        else // если checkbox отмечен
        {
            $('span#'+id).css('background-position','0 0');
            checkbox.removeAttr('checked');
        }  
    }    

}

有html代码:

<li><span class="niceCheck"  onclick="changeCheck(this.id)" id="niceCheckbox2" rel=""><input type="checkbox" name="ch1" id="ch1" value="370"/> <label  for="ch1">Форма обратной связи</label></span></li>
4

1 回答 1

1

您的代码中有一个console.log(checkbox);未被注释掉的。
如果没有控制台,这将破坏 IE 中的代码。

由于您已经在使用 jQuery,您可能需要查看.change()文档中的函数/事件:http: //api.jquery.com/change/
这可能是您首先要使用的。

于 2012-04-20T07:05:31.557 回答