수

jQuery 의 delegate 흉내내기

· 2014-08-06 (수) 18:25:12 · 4052 · 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건
+
제목 글쓴이 날짜 조회
15-12-13 조회 2,888
15-12-11 조회 2,526
15-12-11 조회 2,492
15-12-11 조회 2,505
15-12-10 조회 2,451
15-12-10 조회 2,530
15-12-10 조회 2,503
15-12-03 조회 3,141
15-12-03 조회 2,654
15-11-25 조회 2,720
15-11-09 조회 2,948
15-11-04 조회 2,903
15-06-09 조회 4,017
15-05-06 조회 5,024
15-03-28 조회 4,468
14-12-05 조회 4,940
14-10-25 조회 4,946
14-10-13 조회 4,188
14-10-03 조회 6,048
14-09-19 조회 4,839
14-09-18 조회 3,964
14-09-13 조회 4,540
14-09-03 조회 5,514
14-08-26 조회 4,131
14-08-26 조회 3,904
14-08-26 조회 3,900
14-08-11 조회 6,282
14-08-06 조회 4,053
14-08-06 조회 3,636
14-08-06 조회 3,815
14-08-01 조회 6,154
14-08-01 조회 3,750
14-07-30 조회 4,347
14-06-28 조회 5,098
14-06-28 조회 4,377
14-05-11 조회 4,501
14-05-09 조회 4,853
14-05-09 조회 7,623
14-04-30 조회 4,131
14-04-27 조회 4,114
14-04-25 조회 4,830
14-04-21 조회 3,796
14-04-21 조회 4,927
14-04-10 조회 4,532
14-04-01 조회 6,096
14-03-03 조회 3,480
14-02-25 조회 5,855
14-02-14 조회 5,136
14-02-13 조회 4,737
14-01-03 조회 4,366
13-12-06 조회 3,721
13-11-22 조회 5,467
13-11-18 조회 3,962
13-10-02 조회 4,374
13-10-02 조회 3,636
13-10-02 조회 3,897
13-10-02 조회 3,759
13-10-02 조회 4,131
13-09-16 조회 7,977
13-09-16 조회 5,327
13-08-18 조회 5,326
13-07-11 조회 3,981
13-07-10 조회 4,594
13-07-09 조회 4,645
13-07-09 조회 4,894
13-07-04 조회 4,379
13-07-04 조회 4,042
13-07-04 조회 4,154
13-07-01 조회 4,640
13-07-01 조회 4,468
13-07-01 조회 6,661
13-06-23 조회 4,302
13-06-05 조회 3,576
13-05-29 조회 4,804
13-05-10 조회 4,209
13-04-05 조회 4,818
13-04-05 조회 6,515
13-04-05 조회 1.1만
13-04-05 조회 7,115
13-04-05 조회 6,500
13-03-31 조회 5,769
13-03-31 조회 4,097
13-03-28 조회 4,468
13-03-28 조회 6,604
13-03-28 조회 9,142
13-03-28 조회 4,274
13-03-24 조회 3,882
13-03-21 조회 4,542
13-03-21 조회 1.7만
13-03-14 조회 3,861
13-03-10 조회 4,673
13-03-10 조회 4,408
13-03-10 조회 4,121
13-03-08 조회 5,204
13-03-08 조회 4,309
13-03-03 조회 4,957
13-03-03 조회 7,406
13-03-03 조회 4,170
13-03-03 조회 1.1만
13-03-03 조회 6,183