2
A
답변
3
이 기능을 제공하는 클릭, 포커스, .. 이벤트에 대한 래퍼를 작성하십시오. 그러한 래퍼를 작성하는 것은 상당히 사소합니다. 한 가지 방법이 있습니다 :
jQuery.fn.addClick = function(fn) {
var selector = this.selector; // capture the selector here
this.click(function(event) { // write a wrapper for the click handler
fn(event, selector); // call the user's handler and pass it the selector
});
};
이벤트 처리기 함수는 이제 1 대신 2 개의 매개 변수를 가져옵니다. 첫 번째는 이벤트이고 두 번째는이 이벤트를 바인딩하는 데 사용 된 선택기입니다.
$("#content .child").addClick(function(e, selector) {
alert(selector); // "#content .child"
});
폐쇄와 함께 마무리의 장점은 다른 선택기와 같은 요소에 여러 클릭 이벤트를 결합 할 수 있다는 것입니다, 그들은 모두 함께 작동합니다.
3
일반적으로 selector
을 사용하지만이 경우 this
에는 선택자가 없습니다. 당신은 사용할 수 있습니다 : 물론
var div = $('#content .child');
div.click(function() {
alert(div.selector);
});
, 유용 (아마도 디버깅) 각 자녀에 대해 동일한 선택을 보여, 그리고 모든 것이다. 당신은 간단 갈 수 있습니다, 당신을 마음 :
var selector = '#content .child';
$(selector).click(function() {
alert(selector);
});
근무 예 : 그렇다 코비의 대답에서
3
http://jsfiddle.net/cmuTv/, 그것은 일반적으로 불가능합니다. 그것은 "다음 루프가 주어지면 원래 어레이를 어떻게 다시 얻을 수 있습니까?"라고 물어 보는 것과 같습니다.
var array = [1, 2, 3, 4, 5];
for (i = 0; i < array.length; i++) {
var a = array[i];
alert(/* how do I get the original array given only 'a'? */);
}
그것은이 경우, 다시에만 a
주어진 원래의 배열을 얻을 수없는 것이 분명합니다. 그러나 분명하지 않은 것은 귀하의 경우에도 마찬가지입니다.
.click()
에 대한 호출이 기본적으로 .each()
에 대한 호출로 바뀌고 기본적으로 일치하는 각 요소 주위에 단지 for
루프가 있기 때문입니다. 컬렉션에서 하나의 요소 만보고 있으면 원래 컬렉션을 다시 가져올 방법이 없습니다.
관련 문제
- 1. 의 jQuery 발견 클래스 이름 값
- 2. 의 jQuery 선택기 문제가 발견 HREF에
- 3. 의 jQuery 자동 채우기가 선택 드롭
- 4. 의 jQuery 선택기 :
- 5. 의 jQuery CSS를 바로
- 6. jQuery 선택
- 7. Jquery : 선택 항목 내 선택
- 8. jquery populate 선택 후 선택 후 선택
- 9. jQuery - 동일한 레벨 (홀수 또는 짝수)의 하위 항목 선택
- 10. jQuery 메뉴의 상단을 선택
- 11. 의 jQuery fullcalendar :의 ContextMenu
- 12. jQuery Flot clear 선택
- 13. 의 xsd : '연결되지 않은'요소 선택
- 14. ListView (MFC)의 열 선택
- 15. 부모 창에서 jQuery 요소 선택
- 16. JQuery 동적으로 생성하기 선택 값
- 17. formtastic - : 문자열 필드 배열로 값이 아니라 발견-의
- 18. 는 발견
- 19. 내가이 발견
- 20. 자바 발견
- 21. Jquery 선택 값을 입력하십시오.
- 22. jquery 두 조건으로 선택
- 23. JQuery 내부 텍스트로 선택
- 24. jquery 선택 문제
- 25. jquery submit 선택 상자
- 26. jQuery 사용자 지정 선택
- 27. jQuery 트리보기 하이라이트 선택
- 28. Jquery 여러 확인란 선택
- 29. 계단식 선택 상자 - Jquery
- 30. jquery 트리 선택
임시 변수를 사용하여 셀렉터를 찾을 수 있지만 변수를 사용하여 셀렉터를 찾으려합니다. –
@ Samurai Jack - 이벤트 처리기 컨텍스트 내에서 가능하지 않다고 생각합니다. 사실, '선택자'는 그다지 신뢰할 수 없습니다. '$ ('div'). add ('p')'- 여기에는 콜렉션이 있지만 선택자는 없다. – Kobi