2012-05-22 1 views
0

이 함수 호출

$('#mydiv').paintRed(); 

는 ID로 mydiv 빨간색 DOM 요소의 배경을 그립니다 :

$.fn.paintRed = function() { 
    $(this).css("background-color", "red"); 
} 

글쎄, 괜찮습니다. 하지만 이제는 내 기능을 '그룹화'하고 싶습니다. 이제 프로그래머가이 함수 호출을 사용하여 위와 같은 결과를 얻으려고합니다.

$('#mydiv').subsub.paintRed(); 

어떻게 구현합니까?

(또는 위의 요청을 수없는 경우 다른 사람, 다른 방법이?)

+0

그것은 불가능합니다 확인하십시오. 'this'는'$ ('# mydiv'). subsub'를 참조 할 것입니다. (다른 값에 바인드하지 않는 한, 각 선택에 대해 새로운 함수를 만드는 것을 의미하지는 않습니다.) 그것이 JavaScript가 작동하는 방식입니다. –

답변

2
$.fn.subsub= function() { 
     var that = this; 
     return { 
      "paintRed" : function(){ 
       $(that).css("background-color", "red"); 
      }, 
      "yourOwnFunction1" : function(){ 
       //code here 
      }, 
      "yourOwnFunction2" : function(){ 
       //code here 
      } 
     }; 
    } 
    $("#mydiv").subsub().paintRed(); 
// $("#mydiv").subsub().yourOwnFunction1(); 

반환의 속성으로 paintRed이있는 개체입니다. 이 방법을 사용하면 모든 기능을 subsub 기능으로 "그룹화"할 수 있습니다.

Fiddle

0

당신은 JQuery와를 사용하여 기능을 확장 할 수 있습니다

$.fn.someFunctionName = function(){ 
// do something 
} 

DEMO 여기

+0

그건 내 질문에 언급 한거야. –

관련 문제