2011-08-18 11 views
2

I는 다음과 같이보고 코드를 유지 :Jquery methods?

$(document.documentElement).keyup(function(event) { 
    var slides = $('#slides .pagination li'), 
     current = slides.filter('.current'); 

    switch(event.keyCode) { 
     case 37: // Left arrow 
     if (slides.filter(':first').is(current)) { 
      slides.filter(':last').find('a').click(); 
     } else { 
      slides.eq(slides.index(current) - 1).find('a').click(); 
     } 
     break; 
     case 39: // Right arrow 
     if (slides.filter(':last').is(current)) { 
      slides.filter(':first').find('a').click(); 
     } else { 
      current.find('+ li').filter(':first').find('a').click(); 
     } 
     break; 
    } 
    }); 

과 같은 라인 : current = slides.filter('.current');, .filter(), 오른쪽 JQuery와 방법? 그렇다면 그것은 current = $(slides).filter('.current');이되어서는 안됩니다.

코드에서 수행되는 방식대로 작동합니까? 왜?

+0

'$()'는 jQuery 객체를 반환하는 함수입니다. 이제 해당 객체에는 jQuery 함수가 있습니다. –

답변

4

slides은 jQuery 객체이므로 DOM 객체와 마찬가지로 $()에 포장하지 않아도됩니다.

그래서 slides.filter('.current')$('#slides .pagination li').filter('.current')처럼 작동합니다. 객체가 jQuery 선택기, jQuery 객체 및/또는 DOM 객체인지 여부를 추적하는 것이 중요합니다.

어떤 사람들은 var $slides과 같은 jQuery 객체의 이름을 정신 메모로 사용하고 싶습니다.

+1

"jQuery"변수가 무엇인지에 대한 혼란을 줄이기 위해 jQuery 변수 접두사를'$'접두사로 사용하지 않는 것은 무엇입니까? 그래서, 만약 내가 그것을 작성했다면, 당신은'var $ slides = $ ('# slides .pagination li')라고했을 것입니다; current = $ slides.filter ('. 현재');'. 나는 이것이 유용한 명확성을 추가한다고 생각하지만 어쩌면 그것은 내 반란군 펄 해커 일 수도 있습니다. – Sorpigal

+0

감사합니다. : D : D : D – mowwwalker

0

슬라이드가 이미 'jQuery'ed : $ 기호를 사용하여 정의 된 것을 알 수 있습니다. 다시 $으로 다시 감쌀 필요가 없습니다.

관련 문제