2014-03-04 2 views
0

내가 jQuery를 1.7.2을 사용하고 있는데 이런 클래스에 대한 변경 이벤트에있어 : ​​I 중 하나를 변경하면 같은 페이지에JQuery와 변화는 너무 자주 트리거

$(document).on('change', '.item_amount', function(){ 

}); 

많은 선택이 클래스를 가지고 그 변경 이벤트를 선택하면 그 중 하나를 변경하면 X 번 (X는 그 클래스를 가지고 선택 금액입니다)하지만 난 단지 한 번 선택이 변경되었습니다 이후에만 한 번 트리거 싶어요.

정상적인 동작입니까, 아니면 제가 잘못하고 있습니까?

편집 :

문제는 다른 곳에 것으로 보인다. 해당 select를 포함하는 요소가 삽입되고 (Ajax 호출), 그 중 하나가 dom에 삽입되면 change 이벤트가 모든 기존 요소에 대해 트리거됩니다.

그래서 기본적으로 제품을 보유하고있는 1 번을 선택했습니다. 제품을 선택하면 HTML 코드가 모든 현재 제품을 보유하고있는 div에 삽입됩니다. 그러면 해당 div의 모든 제품에 대한 변경 이벤트가 트리거됩니다.

+0

이 코드가 루프에 있는지 여부 –

+0

루프 내에서 위의 코드가 여러 번 실행될 수 있습니다. –

+0

재생할 수 없습니다. 테스트 사례 공유 – Prinzhorn

답변

2

변경 기능 블록에서 변경된 현재 요소를 나타 내기 위해 this keyword을 사용하십시오.

this -> JavaScript 또는 기본 돔 요소.

$(this) -> 귀하의 jQuery 객체

$(document).on('change', '.item_amount', function(){ 
    alert(this.value); 
    console.log(this); 
}); 
+1

실제 문제를 찾는 데 도움이되었습니다. 나는 그것을 편집 할 때 설명했다. –

0

는 설정합니다. 요소에 대한 변경 및 인수로 함수에 전달?

관련 문제