Javascript 如何更改它们的调用顺序?

Javascript 如何更改它们的调用顺序?,javascript,html,Javascript,Html,我有一个很不方便的问题 假设我有以下功能 function name(namearg){ ... .. } function handlefailed(){ .. .. } function handlecover(){ .. .. } 现在我的问题是,我有很多无法更改的硬编码html,它们像这样调用这两个函数 <a href="javascript:handlecover();javascript:name('MSS')">Link</a> <a href="

我有一个很不方便的问题

假设我有以下功能

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

function handlefailed(){
..
..
}
function handlecover(){
..
..
}
现在我的问题是,我有很多无法更改的硬编码html,它们像这样调用这两个函数

<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>
但是现在这是不可能的,因为我在第一个函数之后调用name函数。
javascript中是否有一种方法可以“改变”函数的求值顺序,或者你们是否有一个聪明的解决方案来解决我的问题,即获取namearg变量的值并在handlefailed()和handlecover()函数中使用它?

您可以清空这两个函数:

function handlefailed(){
..
..
}
function handlecover(){
..
..
}
并创建两个新函数,以满足您的需要

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

然后根据namearg deside从函数名(namearg)内部调用新函数

您可以声明另一个全局函数,
handleFunc
,并让
handlefailed
/
handlecover
指定要在名称中调用的函数

var postFix;
function name(namearg){
    callOtherfunctionInAnotherJavascript(getElements(namearg + postFix));    
}
function handlefailed(){ postFix = '.failed'; }      
function handlecover(){ postFix = '.cover'; }
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
,而不破坏代码的其他部分。

通过硬编码HTML,您的意思是您根本无法重新编写HTML,但可以更改JavaScript代码吗?@Dino Gambone是的,JavaScript是一个include=)想到了这一点,但我需要知道它的功能(handlecover或handlefailed)这是被调用的,因此这是不可能的。不幸的是,我的想法是在handlecover()和handlefailed()中创建布尔值,并将它们中的任何一个设为true,然后在name()中看看这些布尔值中是否有一个是真的,然后调用另一个名为参数的函数,这是一个好的解决方案还是有更好的解决方案?:p这几乎是完美的,我还有一个问题,我得到一个“无效参数错误”,我必须接受这个错误,还是有什么办法可以消除这个错误?:PSorry my bad,太棒了!我只是稍微修改了一下,它工作得很好。非常感谢:)Gambone谢谢你的回答,有点夸张,但我肯定会把这个保存起来,以便在其他项目中进一步使用,我不太擅长回调函数,所以这肯定会派上用场=)
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;
}