2011-03-06 2 views
0

다음은래퍼 메서드에 대한 이론을 곧바로 볼 수 있는지 모르겠다.

$.fn greenify = function(){ 
return this.css ('color','green'); 
} 

에 대한 이론입니다.

$('#today').greenify(); 

이론은 다음과 같습니다.

"래퍼 메소드는 항상 원래 세트, 따라서 return this. 이렇게하면 체인에서 방법을 사용할 수 있습니다. "

지금까지 래퍼 메소드는 여러 HTML 요소를 대상으로하는 방법으로 보았습니다. 단순히 해당 요소를 대상으로하면 해당 HTML 요소가 그대로 수정되지 않은 상태로 유지된다는 것을 의미합니까? 그래서 당신이 이것을 반환 할 때 당신이 당신이 무엇을 얻고 있는지 정확히 알기를 원한다면 당신은 당신이 사슬을 매길 때 당신이 사용하고있는 것을 알고 있습니까? 아니면 뭔가 다른 것을 의미합니까?

+1

견적의 문맥이 없으면 대답하기 어려울 것입니다. 어디에서 왔습니까? 유일한 부분입니까? – krtek

+0

죄송합니다. 컨텍스트를 제공하는 코드로 내 질문을 변경했습니다. – Immers

+0

이 예제는'greenify()'코드에서 아무런 결과없이 아주 잘 작동 할 것입니다. 반환되는 것은'this'가 아니라'this.css ('color', 'green')의 ​​반환 값입니다.'교수님 께 물어 보거나 정말로 당신의 질문을 개선해야한다고 생각합니다;) – krtek

답변

0

래퍼 방법은 기본적으로 임의의 수단의 선택 및 임의의 방법 method 들어

있다. $ (들) .method() === 당신이 당신의 방법은 세트의 모든 DOM 요소의 색상을 수정 여기

$.fn greenify = function(){ 
return this.each(function() { 
    this.css("color", "green"); 
}); 
} 

을 원하는 $ (들) 귀하의 경우에는

. 그리고 당신은 이미 this.each을 jQuery 객체의 메소드로 선언 할 수 있습니다. $(s)$(s)을 반환 할 것이므로 메소드도 $(s)을 반환합니다.

물론 단순화를 위해 $.fn.css은 후드 아래에서 작동하도록 최적화되어 있기 때문에 기능이 동일합니다. 명확함을 위해 $.fn.css을 우리에게 부르는 대신에 $.fn.each을 호출하는 것이 었습니다.

관련 문제