본문 바로가기
jQuery

jQuery 효율적으로 사용하기

by hjcode 2019. 9. 25.

한 번 탐색한 DOM을 다시 탐색하게 하지 않기

bad code

1
2
3
4
5
6
7
8
9
10
11
$('button').on('click'function() {
 
    // DOM 한번 탐색
    $('.modal').modal();
 
    // DOM 다시 한번 탐색
    $('.modal').addClass('active');
 
    // DOM 또 다시 한번 탐색
    $('modal').css(...);
});
 

good code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$('button').on('click'function() {
 
    // DOM 한번만 탐색 (체이닝)
    $('.modal')
            .modal()
            .addClass('active')
            .css(...);
});
 
$('button').on('click'function() {
    // DOM 한번만 탐색
    var modal = $('.modal');
 
    modal.addClass('active');
});
 

명시적인 ‘$’식별자를 사용하기

bad code

1
2
3
var first = $('.first');
var second = $('.second');
var value = $first.val();

good code

1
2
3
var $first = $('.first');
var $second = $('.second');
var value = $first.val();

var 체이닝 사용하기

bad code

1
2
3
var first = $('.first');
var second = $('.second');
var value = $first.val();

good code

1
2
3
var $first = $('.first'),
    $second = $('.second'),
    value = $first.val();

문장을 묶어서 가독성이 좋게 하기

bad code

1
2
3
4
$second.on('click',function(){
    alert('hello everybody');
}).fadeIn('slow').animate({height:'120px'},500);

good code

1
2
3
4
5
$second
    .html(value)
    .on('click',function(){alert('hello everybody');})
    .fadeIn('slow')
    .animate({height:'120px'}, 500);

코드 양 줄이기

bad code

1
2
3
4
5
6
7
function initVar($myVar) {
    if(!$myVar) {
        $myVar = $('.selector');
    }
}
 
if ( collection.length > 0 ) {}

good code

1
2
3
4
5
function initVar($myVar) {
    $myVar = $myVar || $('.selector');
}
 
if ( collection.length ) {}

jQuery 객체를 참조한 변수를 통해 요소 탐색하기

bad code

1
2
3
var $container       = $('.container'),
    $containerLi     = $('.container li'),
    $containerLiSpan = $('.container li span');

good code

1
2
3
var $container = $('.container '),
    $containerLi = $container.find('li'),
    $containerLiSpan = $containerLi.find('span')

 

반응형

'jQuery' 카테고리의 다른 글

농구게임 만들기  (0) 2019.09.26
제이쿼리로 슬라이드 만들기  (0) 2019.09.26
is()로 요소 검사하기  (0) 2019.09.26
CSS3 + jQuery로 버튼효과  (0) 2019.09.25
on이벤트에 파라미터 전달  (0) 2019.09.25