是否可以同时使用来自两个调用函数的单个参数调用相同的函数?

时间:2013-09-25 07:19:14

标签: javascript function

我正在开发一个HTML5 / JavaScript应用程序。

我有一个名为letter(x)的函数,它有一个参数,我想一次从两个不同的地方调用它。这可能吗?

我从HTML中调用它,其中我有两个带onclick函数的图像按钮。当我逐个点击两个图像时,它应该通过并给出结果

我的代码如下: JavaScript中的函数代码

function letter(x) {

    if (x==1&&a) {

        document.getElementById('audio2').play();
        document.getElementById('ka').style.visibility = "true"

    }
}

我调用的HTML代码

<img src="images/mei/off/01.png" id="ik" onclick="letter(1);"/>

<img src="images/uyir/off/01.png" id="ah" onclick="letter(a);"/>

在上面我尝试同时传递两个函数参数时,我无法传递给它。可能吗?如果有可能,怎么办呢?

2 个答案:

答案 0 :(得分:1)

你不能做你想要达到的目标。单击第一个按钮调用该函数时,将使用“1”参数执行该函数,条件将为false。与第二个按钮和参数'a'相同。我会做这样的事情:

var lastCallParameter = '';

function letter(x)
{
   if((lastCallParameter  == '1' && x == 'a') || (lastCallParameter == 'a' && x == '1'))
   {
      document.getElementById('audio2').play();
      document.getElementById('ka').style.visibility = "true"
   }
   lastCallParameter   = x;
}

在该代码上,仅当您依次单击2个按钮时才会执行功能核心。如果只点击一个按钮,则不会执行任何操作。

你的html代码应该是:

<img src="images/mei/off/01.png" id="ik" onclick="letter(1);"/>
<img src="images/uyir/off/01.png"  id="ah" onclick="letter('a');"/>

除非你的代码中有某个名为'a'的变量。在这种情况下,您应该删除围绕'a'的简单引号。在你的代码中,我无法理解'a'是否是在其他地方定义的字符或变量。

请注意,为避免使用全局变量(这是一件坏事),您可以这样做:

var letter = (function(){
   var lastCallParameter = '';

   return function(x)
    {
       if((lastCallParameter  == '1' && x == 'a') || (lastCallParameter == 'a' && x == '1'))
       {
          document.getElementById('audio2').play();
          document.getElementById('ka').style.visibility = "true"
       }
       lastCallParameter   = x;
    }
})();

但它需要您了解关闭和范围才能理解该代码。如果不这样做,则可以使用第一个版本。

答案 1 :(得分:0)

您的功能是检查x是否等于数字1,a是否真实,但该范围内没有a。也许您想知道x是数字1 还是字母a?

function letter(x) {
    if (x == 1 || x == 'a') {
        document.getElementById('audio2').play();
        document.getElementById('ka').style.visibility = "true"
    }
}

如果你想知道x是1并且a是真的,你需要在你的args中提供它:

function letter(x, a) {
    if (x == 1 && a) {
        document.getElementById('audio2').play();
        document.getElementById('ka').style.visibility = "true"
    }
}

<img src="images/mei/off/01.png" id="ik" onclick="letter(1, true);"/>
<img src="images/uyir/off/01.png"  id="ah" onclick="letter(1, 'still true');"/>