2011-07-01 2 views
0

나는 아주 불편한 문제가있다.호출 순서를 변경하는 방법은 무엇입니까?

나는 다음과 같은 기능 내 문제에 대한 지금

function name(namearg){ 
... 
.. 
} 

function handlefailed(){ 
.. 
.. 
} 
function handlecover(){ 
.. 
.. 
} 

있다고 말해, 나는이

<a href="javascript:handlecover();javascript:name('MSS')">Link</a> 
<a href="javascript:handlefailed();javascript:name('GPS')">Link</a> 
<a href="javascript:handlefailed();javascript:name('NPS')">Link</a> 

처럼 두 함수를 호출 변경 될 수없는 하드 코딩 HTML을 많이 가지고 문제는 내가 함수를 호출하는 순서이며, 먼저 handlefailed() 또는 handlecover() 중 어떤 함수가 호출되는지보고 싶고 이름 함수에 어떤 이름이 보내지는지 알고 싶습니다.

은 내가 다른 방법으로 함수를 호출했을 경우 주위에 난 그냥

var theName; 

function name(namearg){ 
    theName = namearg 
} 

function handlefailed(){ 
callOtherfunctionInAnotherJavascript(getElements(theName + ".failed")); 
} 
function handlecover(){ 
callOtherfunctionInAnotherJavascript(getElements(theName + ".cover")); 
} 

을했을하지만 첫 번째 함수 후 이름 함수를 호출하고있어 이후 지금 할 수 없습니다. 자바 스크립트에서 함수가 평가되는 순서를 "변경"하는 방법이 있습니까, 아니면 내 문제에 영리한 해결책이 있습니까, IE가 namearg 변수의 값을 가져와 handlefailed()에 사용하십시오 & handlecover() 함수?

function handlefailed(){ 
.. 
.. 
} 
function handlecover(){ 
.. 
.. 
} 

을하고

function handlefailed2(){ 
    .. 
    .. 
    } 
    function handlecover2(){ 
    .. 
    .. 
    } 

다음에 namearg의 deside에 따라 함수 이름 (namearg) 내부에서 새로운 함수를 호출해야 할 일을 두 가지 새로운 기능을 만들 :

+0

하드 코딩 된 HTML을 사용하면 HTML을 다시 작성할 수는 없지만 JavaScript 코드는 변경할 수 있다는 것을 의미합니까? –

+0

@ 디노 Gambone 네, 그게 맞아, 자바 스크립트가 포함되어 있습니다) === – Adam

답변

0
var postFix; 
function name(namearg){ 
    callOtherfunctionInAnotherJavascript(getElements(namearg + postFix));  
} 
function handlefailed(){ postFix = '.failed'; }  
function handlecover(){ postFix = '.cover'; } 
+0

거의 완벽하게 작동합니다. 질문이 하나뿐입니다. "잘못된 인수 오류"가 발생하거나이 오류와 함께 살아야합니까? 아니면이 오류를 없애기위한 방법이 있습니까? : P – Adam

+0

미안하지만, 나쁘지! 방금 수정했는데 완벽하게 작동했습니다. 고맙습니다. :) – Adam

0

당신은 두 기능을 비울 수 있습니다 어떤 기능을 호출 하시겠습니까?

+0

그 생각하지만, 그게 뭔지 fuction (handlecover 또는 handlefailed), 그래서 unsunun, 가능한 내 생각은 handlecover 내부에 부울을 만드는 것입니다 전화가 뭔지 알아야합니다) 그리고 handlefailed() 중 하나를 true로 설정 한 다음 이름 안에() 부울 중 하나라도 참인지 확인한 다음 다른 인수를 인수로 호출하면 좋은 해결 방법이 있습니까? : P – Adam

0

다른 gl obal, handleFunc이고 handlefailed/handlecover은 어느 것을 이름으로 부를 지 지정합니다.

var theName; 
var handleFunc = null; 

function name(namearg) 
{ 
    if(handleFunc instanceof Function) 
    { 
     handleFunc(namearg); 
     handleFunc = null; 
    } 

    theName = namearg 
} 

function handlefailedCallback(namearg){ /* some code */} 
function handlefailed() 
{ 
    handleFunc = handlefailedCallback; 
} 

function handlecoverCallback(namearg){ /* some code */} 
function handlecover() 
{ 
    handleFunc = handlecoverCallback; 
} 

이 당신에게 코드의 다른 영역을 파괴하지 않고 name를 계속 사용 할 수있는 유연성을 제공합니다.

+0

Gambone 답장을 보내 주셔서 감사합니다. 과도한 비틀 거리기는하지만, 다른 프로젝트에서 사용하기 위해 이것을 저장합니다. 콜백 함수가 좋지는 않습니다. 따라서 가장 확실한 방법이 될 것입니다. =) – Adam

관련 문제