2012-10-23 3 views
0

MyFunction이 MyOtherFunction이 무엇인지 알지 못하는 채 "MyFunction"(요소를 작성)이 완료되면 "MyOtherFunction"을 호출해야합니다.javascript 옵션을 확장하여 기능을 추가하십시오.

내가 필요한 이유는 다른 기능을 가진 여러 곳에서 사용되는 jquery powered fileupload User Control을 확장하기 위해서입니다.

$(UserControl).on(MyFunction, UploadElem, MyOtherFunction); 

하지만이 경로 : 내가 생각 특정 페이지는 그것을 위해 헤더와 파일 수를 표시하고 업로드가 완료되면, 나는 (생성 요소에 의해) 표시되는 방법을 많은 파일에 따라 파일 수를 수정해야 아무것도 성취하지 못하고있다. 사용자 컨트롤을 변경할 수있는 대부분의 기능은 함수 호출에 추가되지만 원래 사용자 정의 컨트롤 기능에는 영향을 미치지 않습니다.

MyFunction이 이벤트가 아니기 때문에 거품이 나오지 않거나 .on()의 매개 변수로 정의 된 함수를 사용할 수 없다면 잘 모르겠다. 이 코드는 작동합니다. 어떤 제안? 내가 생각할 수있는

답변

2

가장 쉬운 방법입니다 오리 각각 펀칭 방법은 접선 :

var _oldMyFunction = MyFunction; 

MyFunction = function() { 
    _oldMyFunction.apply(this, arguments); 
    MyOtherFunction(); 
}; 
+0

그게 효과가 있습니다. 내 상황에 대해 잘 모르겠지만,이 답변은 분명히 체크 아웃되고 나머지는 도움이 될 것 같습니다! –

+0

불행히도 내 상황에서는이 경로가 내가 혼자 서 있어야하는 것을 이루지 못합니다. 이벤트 매개 변수가 필요없는 ClientUploadFinished 함수를 추가하고 diong가 있는지 확인하여 일반 확장 메서드를 사용해야하는 경우이 기능을 사용할 수 있습니다. –

+0

내 문제를 해결하기 위해 개념을 사용 했으므로 나는 나의 대답으로 표시 할 것이지만, 제발, 내 대답을보고 정확히 그것을 어떻게 사용했는지 보아라! –

0

난 내 자신의 문제를 해결하기 위해 관리를하지만, 상황에 맞는 답 중요하다 :

// Using a Global JavaScript object I created: 
GlobalNameSpace.ExtensionFunction = function(oParam1, oParam2, oParam3) 
{ 
    /// <summary>All parameters are optional</summary> 

    return; // For instances when it is not being overwritten, simply return 
} 

//In the Code for the user control: 
GlobalNameSpace.UploadControl.UploadComplete(oSender, oArgs) 
{ 
    ///<summary>Handles the Upload process</summary> 

    // process the upload 
    GlobalNameSpace.ExtensionFunction(oSender, oArgs); 
} 

//and finally in the code to extend the functionality 
GlobalNameSpace.Page.Init 
{ 
    ///<summary>Initializes the page</summary> 

    // redefine the extension function 
    GlobalNameSpace.ExtensionFunction = function(oSender, oArgs) 
    { 
     GlobalNameSpace.Page.Function(oSender, oArgs); 
    } 
} 

이렇게하면 내 개체를 오염시키지 않고 필요한 모든 것을 확장 할 수 있으며 변경 사항을 적용하기 위해 기존의 일반적인 항목을 이미 사용하고 있습니다. 이 솔루션은 업로드 된 항목을 대표하여 파일 수를 나타내는 헤더를 트리거하기 위해 만든 요소에 대해 onCreate 함수가 필요하다는 문제를 해결합니다. 매우 유용합니다

+0

전반적으로이 질문은 내 개체 구조를 좀 더 복잡하게 만드는 것으로 끝나는 상황 발생이었습니다. 대답은 그냥 bandaid입니다. –

+0

이 형식은 내가 만든 글로벌 네임 스페이스에서이 형식으로 덮어 쓸 수 있으므로 최적의 대답은 아닙니다. 나는 이것을 다시 방문해야 할 것이다. –

관련 문제