2017-01-27 1 views
0

shopify 테마를 만들고 있지만이 스크립트를 carti에 추가하면 버그가 있습니다. 당신이 장바구니에 증가 제품을 사용해 어디 갔지 그들은 2.JS가 1 씩 1 대신 2 씩 2 씩 증가합니다.

HTML

<div class="quantity"> 

<input type="number" name="updates[]" value="{{ item.quantity }}" data-id="{{ item.id }}" min="0" max="99" step="1" title="Qty" class="qty" size="4"> 

</div> 

JS

if ((".quantity").length > 0) { 
    var form_cart = $("form .quantity"); 
    form_cart.prepend('<span class="minus"><i class="fa fa-minus-square-o"></i></span>'); 
    form_cart.append('<span class="plus"><i class="fa fa-plus-square-o"></i></span>'); 

    var minus = form_cart.find($(".minus")); 
    var plus = form_cart.find($(".plus")); 

    minus.on("click", function(){ 
     var qty = $(this).parent().find(".qty"); 
     if (qty.val() <= 1) { 
     qty.val(1); 
     } else { 
     qty.val((parseInt(qty.val())-1)); 
     } 
    }); 
    plus.on("click", function(){ 
     var qty = $(this).parent().find(".qty"); 
     qty.val((parseInt(qty.val())+1)); 
    }); 
    } 

PS에 의해 2 점프. 최소 및 최대 나쁜 영어

+0

한 번 이상 이벤트를 바인딩하는 것처럼 들립니다 .... – epascarello

답변

0

변경 var qty = $ (this) .parent(). find (".qty"); 바깥 쪽을위한 if와 works tks 모두

if ((".quantity"). 길이> 0) { var form_cart = $ ("form .quantity"); form_cart.prepend (''); form_cart.append ('');

var minus = form_cart.find($(".minus")); 
var plus = form_cart.find($(".plus")); 

var qty = $(this).parent().find(".qty"); 

minus.on("click", function(){ 
    if (qty.val() <= 1) { 
    qty.val(1); 
    } else { 
    qty.val((parseInt(qty.val())-1)); 
    } 
}); 
plus.on("click", function(){ 
    qty.val((parseInt(qty.val())+1)); 
}); 

}};

0

나는이 입력 유형이 작동하려면 실제로 그렇게 추가하거나 더블 추가하거나 같이있는 JS의 내부 값을 제거의 JS 필요하다고 생각 해달라고 두 번에 대한

미안 작업이 arent 값을 제거;)

희망이 도움이 될 수 있습니다!

관련 문제