2011-09-29 6 views
3

옵션이 변경되지 않은 경우에도 <select>에 대해 change()가 트리거 될 수 있습니다.변경시 값이 변경되는지 확인하십시오.

jsfiddle 예를 참조하십시오.

선택 사항을 변경하면 표시된 텍스트 입력이 변경됩니다. 그러나 (그리고 나는 그것이 약간의 신축성 알고 않음)이있는 경우 :

  • 키보드 Selection:
  • 눌러 아래 라벨을 클릭하여 아래로 (Show A 가정을 선택한)을 드롭을 선택
  • 선택한 다음 Show A 마우스 포인터가 있으면 change()가 트리거됩니다.

(바로 지금 변수를 사용하여 마지막 선택이 변경()시에 있었던 것을 추적 할 생각이 있습니까?

편집 : Chrome 관련 문제인 것 같습니다. 내가 마지막으로 선택한 항목이 무엇인지 추적하기 위해 변수를 사용하여 문제를 해결할 수있었습니다. 나는이 버그가 jQuery/Chrome 개발자를 위해 떠났다고 생각한다.

+0

있는 브라우저가이 동작을 경험하고, FF 6 그것을 재현 할 수 없습니다 ? – Niko

+0

@ Niko chrome 14.0.835. IE 8에서도 재현 할 수없는 것을 보았습니다. – fjdutoit

답변

1

이 같은 요소 (오히려 변수 제외)에 데이터로 현재 값을 저장합니다 :

$('#variable').data('currentval', $('#variable').val()).change(function() { 
    var t = $(this); 
    if (t.data('currentval') != t.val()) {   
     $(this).data('currentval', $(this).val()); 
     $('#listA').toggle('fast'); 
     $('#listB').toggle('fast'); 
    } 
}); 

http://jsfiddle.net/emMx6/2/

+0

품위있는. 나는 data() 기능에 대해서조차 몰랐다. – fjdutoit

관련 문제