언제 바인드 함수를 사용해야하는지, 그리고 jquery에서 델리게이트 함수를 사용해야하는지 알고 싶습니다. 그들은 같은 기능을 수행하지 않습니까? 그 차이점은 무엇입니까? (; @Yoshi에 의해 지적 bind
이되지 않는 한, 또는 더 나은 아직, on
) 당신이 이벤트 리스너를 바인딩 할 몇 가지, 기존 요소가있을 때언제 jquery에서 대리자를 사용할 때 bind와
0
A
답변
3
당신은 bind
를 사용합니다. 처리하려는 요소가 아직 존재하지 않는 경우 delegate
을 사용합니다 (예 : 동적으로 생성되고 생성 한 각 요소에 핸들러를 바인딩하지 않지만 대리자를 둘 수있는 공통 부모가 있음). 또는 공통 부모 (각 요소의 개별 처리기보다 부모의 대리자가 더 효율적 임)를 사용하여 많은 요소에서 이벤트를 처리 할 때 유용합니다.
DOM 이벤트는 DOM 계층까지 거품, 그래서 당신은 그 요소에 대한 onclick
핸들러가 트리거 요소를 클릭하면, 다음 부모, 다음 부모 등 (에 핸들러 핸들러는에 stopPropagation
를 호출하지 않는 한 이벤트를 사용하면 더 이상 버블 링을 취소합니다. bind
/on
을 사용하면 처리 할 특정 요소에 핸들러를 첨부하고 설정 한 대상에 의해 직접 트리거되며, delegate
을 사용할 때, jQuery 내부 핸들러가 지정한 요소에 연결되고 버블 체인을 따라 가면서 이벤트를 포착하고 jQuery는 실제 대상 (핸들러가 연결된 요소의 자식)이 셀렉터와 일치하는지 확인합니다. 에 지정된 위임, 그리고 그것이 호출되면 (실제 핸들러가 부모 요소가 아닌 대상 요소에 첨부 된 것처럼 호출됩니다. @shannon이 지적한).
관련 문제
- 1. 언제 뷰의 대리자를 nil로 설정해야합니까?
- 2. 향후 conext 요소에 jquery에서 대리자를 사용할 수 있습니까?
- 3. 언제 jQuery에서 마침표를 사용해야합니까?
- 4. jQuery에서 .live를 사용할 때 실수로 함수가 실행됩니다.
- 5. BeginInvoke 및 EndInvoke를 사용할 때 대리자를 전달/저장하지 않으려면 어떻게해야합니까?
- 6. 대리자를 호출 할 때 NotImplementedException
- 7. .bind와 함께 jQuery .live를 사용합니다.
- 8. Android : 언제 layout_margin을 사용할 지, 언제 weightSum을 사용할 수 있습니까?
- 9. 언제 사용할 수 있습니까?
- 10. AsyncCallback은 정적이 아닌 대리자를 사용할 수 있습니까?
- 11. C# : ThreadStart에서 익명의 대리자를 사용할 수 있습니까?
- 12. jquery에서 단일 undelegate 메서드를 사용하여 여러 이벤트 대리자를 제거하는 방법
- 13. DataView는 언제 사용할 수 있습니까?
- 14. Application.DoEvents, 필요할 때 언제 아닌가?
- 15. 언제 jQuery.ajax를 사용하고 언제 jQuery.post를 사용할 수 있습니까?
- 16. 언제 BroadcastReceiver를 사용할 수 있습니까?
- 17. 언제 uncaught_exception을 사용할 수 있습니까?
- 18. 언제 CanFreeze를 사용할 수 있습니까?
- 19. 스프링 MVC 모델을 사용할 때 모델 인스턴스가 언제 초기화되고 어떻게됩니까?
- 20. jQuery .each()를 사용할 때 함수가 언제 실행됩니까?
- 21. 스토리 보드를 사용할 때 모델 데이터를 언제 볼 수 있습니까?
- 22. extjs 4.1 상점에서 언제 모델을 사용할 때 프록시를 사용합니까?
- 23. Fastmm4를 사용할 때 가상 메모리 문제는 언제 발생합니까?
- 24. Sequel ORM을 사용할 때; 코어 또는 모델을 언제 사용해야합니까?
- 25. 젠드 프레임 워크 : 언제/라이브러리 또는/응용 프로그램을 사용할 때
- 26. jQuery에서 .animate 함수를 사용할 때 + = 변수를 사용하는 구문은 무엇입니까?
- 27. jQuery에서 .fadeOut()을 사용할 때 클릭 사용 안 함
- 28. jQuery에서 간격 설정을 사용할 때 간격을 지우는 방법?
- 29. jquery에서 hide/show를 사용할 때 div 위치를 기억할 수 없습니다.
- 30. jQuery에서 clone 메소드를 사용할 때 textBox의 Value 속성을 제거하는 중
['on'] (http://api.jquery.com/on/) 두 가지 방법이 모두 좋기 전에 선호됩니다. – Yoshi
대리자는 부모 요소에 적용되지만 이벤트는 트리거 된 자식 요소에 있었던 것처럼 * 호출됩니다. 또한 델리게이트를 사용하면 관심있는 요소의 * 하위 항목 *을 처리하기 전에 이벤트를 먹지 않도록해야하며 해당 요소와 대리자가 적용된 조상 사이의 모든 요소도 확인해야합니다. – shannon
@ Yoshi 왜 다른 두 가지 방법보다 선호됩니까? – lakesh