在onclick中声明一个变量?

时间:2012-04-01 09:07:05

标签: javascript

当有人点击某个内容然后声明一个变量时,如何在JavaScript中声明一个var,具体取决于函数返回的内容,这可能是true或false值。

类似

onclick="var varable = somefunction(); "

然后我将比较onclick中的变量然后执行一个函数。因此,如果该变量为true,则执行一个函数,如果该函数为false,则返回。

如何在js中完成这两件事?

3 个答案:

答案 0 :(得分:3)

解决问题的最简单方法是通过三元运算符?

onclick="myTestFunction() ? onTrueFunction() : onFalseFunction();"

所以最后你不需要申报任何东西。

答案 1 :(得分:3)

问题在于,通过使用var,该变量本地作用于该单击处理程序,而不是全局对象,window。最简单的解决方法是直接将变量的值设置为window上的属性:

onclick="window.varable = somefunction();"

然后,您可以从代码的其他部分访问varable (原文如此)

也就是说,将应用程序逻辑直接放在onclick属性中通常是一个坏主意。

答案 2 :(得分:1)

您在javascript的全局范围内声明该变量,并在单击处理程序中为其分配:

var myVariable;

<a href="xxx" onclick="myVariable = somefunction();">

或者,您为单击处理程序创建另一个功能,为您完成工作:

function dispatchFunction() {
    if (myVariable) {
        someFunction1();
    } else {
        someFunction2();
    }
}


<a href="xxx" onclick="dispatchfunction();">

或者,取决于你想要的东西:

function dispatchFunction() {
    if (someFunction0()) {
        someFunction1();
    } else {
        someFunction2();
    }
}

关键是通常最好只从click处理程序调用一个函数,并让该函数执行您需要完成的任何工作,而不是将多个语句内联到Click处理程序HTML中。