2012-02-09 6 views
0

입력 양식에 초점이 맞지 않으면 여러 이벤트가 발생해야합니다. 즉, blur 이벤트가 발생합니다. 다양한 이벤트 핸들러의 순서를 관리하는 데 문제가 있습니다. 이것에 응답해야하는 것은 불린다.jQuery에서 다중 이벤트 핸들러 관리

각 양식 입력 태그에는 흐리게 처리 할 때 다양한 작업이 필요합니다.

  1. 대문자로 시작하거나 체크 박스에 따라 폼의 영역을 표시하는 등의 다양한 자동 포맷터가 있습니다.
  2. jQuery 유효성 검사. 이러한 Ajax 호출로
  3. 사후 검증 기능

지금까지 내가 함께 온 가장 좋은 방법은 이벤트 버블 링 시스템에 의존하는 것입니다. 따라서 점 1의 모든 이벤트가 jQuery.on()을 사용하여 유효성 검사 규칙보다 DOM 깊숙한 요소에 연결되어 있는지 확인하십시오. Jquery 유효성 검사는 이벤트 리스너를 양식 요소에 연결합니다.

휘파람이 작품에는 몇 가지 문제가 있습니다. 그것은 내가 더 가질 때 문제가 될 수있는 3 가지 클래스의 이벤트에서 작동합니다.

사람들이 jQuery와 함께 사용하면 이러한 종류의 시스템을 쉽게 구현할 수 있습니까?

+0

나는 보통 각 요소마다 오직 하나의 이벤트만을 사용하고 그 하나의 이벤트 내에서 모든 다른 메소드를 수행한다. –

+2

코드를 게시하십시오. –

답변

0

맞춤 이벤트를보고이를 실행 했습니까? 의견에 따라 :

$(document).on('blur', '.myInputClass', function(){ 
    // do stuff for blur here 
    $(this).trigger('getMeMore');//now trigger my event 
}); 
$(document).on('getMeMore','.myInputClass',function(){ 
    //do my ajax to get me more here 
}); 

편집 : 당신은 흐림 코드가 완료된 후 "getMeMore"이벤트 사용자 정의를 만들 수 있습니다 예를 들어

선택기에서이 문서는 대한 단순히 앵커 라이브 이벤트를위한 이벤트. 조건부에 따라 다른 이벤트 내에서 맞춤 이벤트를 발생시키는이 예제 http://jsfiddle.net/MarkSchultheiss/qM2Mv/을 참조하십시오. 다른 이벤트가 언제 발생하는지 확인하려면 숫자를 두 배로 봅니다. 나는 그것이 해석 되리라는 것을 안다. 그러나 잘하면 그것은 당신에게 일할 무언가를 줄 것이다. 내 코드에서이 작업을 수행하여 이벤트가 발생하는 특정 시간에 존재하거나 존재하지 않을 수있는 다른 조건에 따라 "언제"이벤트가 발생하는지 관리 할 수 ​​있습니다. 이렇게하면 여기에있는 이벤트 관리와 이벤트 트리거를 분리 할 수 ​​있습니다. 다른 곳에서 사용자 지정 이벤트 중 일부를 트리거하는 위치를 확인하십시오. (체크 박스 값과 텍스트 엔트리의 길이에 기초하여)

+0

나는 이런 식으로 생각했다. 그러나 문제를 바꾸고 있다고 생각했다. 이것은 어딘가에서 여전히 맞춤 이벤트를 발생시켜야하기 때문입니다. 여기서는 문서 수준에서 수행하고 있습니다. 그 사건이 일어나면 나는 그 후에 다른 것을 발사 할 수 없을 것이다. 이 방법은 실행 순서를 변경하는 이벤트의 버블 링에 의존합니다. –

+0

@MattBate - 추가 된 예보기 –