2014-10-30 4 views
0

Я пытаюсь создать пользовательский флажок, который добавляет или вычитает значение в зависимости от того, установлен ли он или нет. т.е.: все отмеченные поля суммируются.Пользовательский флажок toggles value value

$("div[active=1]").on("click",function(){ 
    var itemPrice = $(this).attr("itemprice"); 
    sum -= Number(itemPrice); 
    $("#current_price").html(sum); 
    $(this).attr("active","0"); 
}); 

$("div[active=0]").on("click",function(){ 
    var itemPrice = $(this).attr("itemprice"); 
    sum += Number(itemPrice); 
    $("#current_price").html(sum); 
    $(this).attr("active","1"); 
}); 

Мой вопрос изменения статуса коробки, как «проверено» или бесконтрольно»Я использую $ (это) .attr. („Проверено“, 1);., Чтобы изменить состояние после щелчка

Вот то, что я до сих пор, как вы можете видеть, щелчок на 100 коробку (к примеру) просто продолжает ADD 100, в отличие от добавления/вычитания/добавить/вычесть ....

http://jsfiddle.net/L76xzbLj/

ответ

1

Обработчики кликов не работают для динамически измененных объектов, попробуйте вместо этого:

$("body").on("click", "div[active=1]", function(){ 
    var itemPrice = $(this).attr("itemprice"); 
    sum -= Number(itemPrice); 
    $("#current_price").html(sum); 
    $(this).attr("active","0"); 
}); 

$("body").on("click", "div[active=0]", function(){ 
    var itemPrice = $(this).attr("itemprice"); 
    sum += Number(itemPrice); 
    $("#current_price").html(sum); 
    $(this).attr("active","1"); 
}); 

Обновлено скрипку: http://jsfiddle.net/L76xzbLj/7/

+0

Фигурные, что это была проблема с динамическим атрибутом. Благодаря! – dsol828