수

jQuery 의 delegate 흉내내기

· 2014-08-06 (수) 18:25:12 · 4013 · 1

제이쿼리에서는 부모를 지정한 다음 이벤트 발생 시 그 하위 태그가 지정된 셀렉터와 일치하면 발생시키는 기능으로, 

Ajax 등의 동적으로 바뀐 컨텐츠에도 대응이 가능하고 성능도 좋다고 알려져 있습니다. 

 

그렇다면 이 스크립트의 원리는 무엇인가요? 

간단합니다. 부모에게 이벤트를 줍니다. 그리고 이벤트 핸들러를 아래와 같이 만듭니다. 

 

function clickEventDelegate(e){ 

    var e = e || window.event; //이벤트 객체를 받아냅니다. 

    var target = e.target || e.srcElement; //이벤트가 발생시킨 원래 요소를 가져옵니다. 

    if(target.nodeName == 'LI'){ //발생시킨 요소가 <li> 태그이면 

        childEventHandler.call(target, e); //해당 이벤트를 실행합니다. 

    } 

} 

 

여기서 한가지 주의해야 할 점이 있습니다. 

이벤트를 발생시킨 요소에 이벤트가 있을 때, 

return false; 반환하거나, event.stopPropagation() 메소드 또는 event.cancelBubble = true; 를 실행하면 

자식에서 부모에게 이벤트를 전달하지 않게 되기 때문에 

부모에서 캡쳐하지 못합니다. 이는 제이쿼리라도 마찬가지입니다. 

 

|

댓글 1개

좋은 정보감사합니다.
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
14-08-26 조회 7,223
14-08-25 조회 4,028
14-08-23 조회 3,798
14-08-22 조회 4,297
14-08-22 조회 1만
14-08-22 조회 3,867
14-08-22 조회 5,110
14-08-22 조회 4,075
14-08-22 조회 3,967
14-08-21 조회 4,139
14-08-21 조회 3,725
14-08-21 조회 3,564
14-08-20 조회 3,857
14-08-20 조회 3,595
14-08-19 조회 4,388
14-08-19 조회 3,609
14-08-19 조회 3,954
14-08-19 조회 3,709
14-08-19 조회 7,442
14-08-19 조회 3,539
14-08-18 조회 3,805
14-08-18 조회 4,353
14-08-18 조회 3,711
14-08-17 조회 8,071
14-08-17 조회 6,348
14-08-17 조회 7,773
14-08-17 조회 3,605
14-08-16 조회 4,141
14-08-16 조회 4,142
14-08-16 조회 4,155
14-08-14 조회 3,936
14-08-14 조회 3,462
14-08-13 조회 6,222
14-08-13 조회 5,755
14-08-13 조회 5,150
14-08-13 조회 4,247
14-08-13 조회 4,273
14-08-13 조회 5,681
14-08-13 조회 3,608
14-08-12 조회 3,951
14-08-12 조회 5,304
14-08-12 조회 6,167
14-08-12 조회 4,048
14-08-12 조회 3,705
14-08-12 조회 4,204
14-08-11 조회 3,555
14-08-11 조회 4,227
14-08-11 조회 3,540
14-08-11 조회 4,231
14-08-11 조회 3,994
14-08-11 조회 5,043
14-08-11 조회 6,741
14-08-11 조회 6,216
14-08-11 조회 6,537
14-08-11 조회 4,457
14-08-11 조회 4,356
14-08-11 조회 5,155
14-08-08 조회 3,803
14-08-08 조회 4,431
14-08-08 조회 6,582
14-08-07 조회 5,141
14-08-07 조회 3,527
14-08-07 조회 4,240
14-08-06 조회 4,014
14-08-06 조회 3,601
14-08-06 조회 5,898
14-08-06 조회 4,427
14-08-06 조회 4,267
14-08-06 조회 3,825
14-08-06 조회 6,038
14-08-06 조회 5,480
14-08-06 조회 3,616
14-08-06 조회 6,381
14-08-06 조회 3,814
14-08-05 조회 3,463
14-08-05 조회 3,761
14-08-05 조회 3,538
14-08-05 조회 3,520
14-08-05 조회 3,887
14-08-04 조회 4,587
14-08-04 조회 3,917
14-08-04 조회 3,537
14-08-03 조회 3,416
14-08-03 조회 5,477
14-08-03 조회 4,903
14-08-03 조회 5,046
14-08-02 조회 4,438
14-08-01 조회 5,506
14-08-01 조회 5,953
14-08-01 조회 7,338
14-08-01 조회 8,629
14-08-01 조회 5,012
14-08-01 조회 4,572
14-08-01 조회 4,553
14-08-01 조회 3,954
14-08-01 조회 3,947
14-08-01 조회 3,945
14-08-01 조회 3,722
14-08-01 조회 4,564
14-08-01 조회 5,042