2013-10-18 2 views
1

다음 updateCart() 함수를 사용하여 AJAX 요청을 사용하여 '즉시'페이지의 장바구니 가격을 변경하는 장바구니 응용 프로그램이 있습니다. render_cart() 함수는 'keyup'이벤트를 사용하여 바스켓에 각 항목을 표시합니다.'keyup'에 대한 jQuery가 AJAX 요청 후 더 이상 작동하지 않습니다.

어떤 이유에서든 초기 키 누르기에서 제대로 작동하지만 입력란에서 .cart-qty 클래스를 볼 수는 있지만 다시 시도해도 아무도 제안 할 수 없습니다 이 일이 일어 났나요?

// on keyup event call the update cart function 
$(".cart-qty").on('keyup',function(e) {  
    var qty = $(this).val(); // e.g '2' 
    var rowid = $(this).data("rowid"); // e.g 740fdjhirtj3swnjf463 

    $(".basket-item").remove(); 
    updateCart(qty, rowid); 

}); 

function updateCart(qty, rowid){ 
$.ajax({ 
     type: "POST", 
     url: "/cart/ajax_add_item", 
     data: { rowid: rowid, qty: qty }, 
     dataType: 'json', 
     success: function(data){     
      render_cart(data); 
     }   
    }); 
} 

function render_cart(json) { 

total = json.total; 
cart = json.contents; 

var html = ''; 
if (cart) { 
    $.each(cart, function (i, item) { 
     html += '<div class="basket-item"><div class="col-sm-6 col-no-pad"><p><img class="img-responsive" src="'+ item.custom.image +'" alt="'+ item.name +'" /></p><div class="remove-item"><p><a class="btn btn-sm btn-yellow" href="#">Remove</a></p></div></div><div class="col-sm-6 col-no-pad"><p class="model"><span class="heading">Model:</span><br />'+ item.name +'<br />'+ item.options.attributes +'</p><p class="buyer"><span class="heading">Buyer:</span>'+ item.options.merchant +'</p><p class="price"><span class="heading">Price:</span>&#36;'+ item.subtotal.toFixed(2) +'</p><p class="condition"><span class="heading">Condition:</span>'+ item.options.condition +'</p><p class="quantity"><span class="heading">Quantity:</span><input type="text" class="form-control cart-qty" value="'+ item.qty +'" data-rowid="'+ item.rowid +'" /></p></div></div>'; 
    }) 
} 

$('#basket_start').after(html); 
$('#total-value').text(total); 
} 

답변

7

당신은 당신이 살아있는 전설이다 문서에 그것을 바인딩이

$(document).on('keyup','.cart-qty',function(e) { 

같은 동적으로 추가 요소 또는 가장 가까운 정적 부모

+1

에 대한 이벤트 위임 CSTE 연구진()를 사용합니다 ! 난 단지 방금 질문을 게시 완료 ... +1 귀하의 빠른 응답 (곧 받아 들일 것입니다) – Zabs

+0

고맙습니다 친구 .. 정말 당신의 도움을 주셔서 감사합니다 :-) –

0
$('.cart-qty').on('keyup', (function(event) { 
    //do code 
}));