我创建一个事件处理程序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>
答案 0 :(得分:1)
您的代码中有console.log(checkbox);
未注释掉
如果没有控制台,这将破坏IE中的代码。
由于您已经在使用jQuery,因此您可能需要查看文档中的.change()
函数/事件:http://api.jquery.com/change/
这可能是你想要首先使用的。