2015-01-29 2 views
0

장바구니를 관리하는 스크립트를 만들고 있는데 제품의 수량을 변경할 수있는 입력 필드에 blur 이벤트를 첨부하고 싶습니다.jQuery blur 이벤트가 한 번만 발생합니다.

문제는 이벤트가 한 번만 발생한다는 것입니다. 그 후에 다시 사용할 수 있도록 페이지를 새로 고쳐야합니다. 내가 매개 변수 행의 ID로 사용하는 스크립트에서

jQuery(document).ready(function($) { 
    $("input",".fila_producto").each(function() { 
     $(this).on('focusout', {param: $(this).parent().parent().attr('id')}, updateCantidadProducto); 
    }); 
}); 

나는 그 값을 확인하기 위해 입력을 사용하고 있습니다 :

는 지금은이 있습니다.

요청을 할 수있는 기능이 하나입니다

function updateCantidadProducto(event){ 
    var id = event.data.param; 
    var cantidad = $(this).val(); 

    var datos = { 
     "modify" : true, 
     "identificador" : id, 
     "cantidad": cantidad 
    }; 

    $.ajax({ 
     data: datos, 
     url: 'carrito.php', 
     type: 'post', 
     success: function(response){ 
      $("#aside").replaceWith(response); 
     } 
    }); 

} 

이 처음 좋은 작동하지만 다음 이벤트가 작동하지 않습니다. 내가 이걸 얼마나 나쁘게 만들었는지에 대한 제안?

답변

1

귀하가 묻는대로해야합니다.

+1

제대로 작동하지 않아서 왜 핸들러 내부에 param 파트를 넣어야했는지 (정확하게 내가 이전에 넣지 않은 이유를 정확히 알지 못함). 고마워요! – thejazzman

1

이 (가) (그들은 새로운 요소 또는 기존 요소가 있는지 여부)는 DOM에서 요소에 이벤트를 바인딩 증거 구문을 실패 할 것은

$(document).on('focusout', '.fila_producto', function() { 
    // do stuff here 
}); 

$(document)도에 .fila_producto 클래스가보다 구체적인 선택이 될 수 있습니다 그것은 (그러나 당신이 사용하는 선택기가 추가 된 요소가 아니라 dom에 이미 존재하는지 확인하십시오). 이 도움이되기를 바랍니다!