2

我正在开发一个 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);"/>

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

4

2 回答 2

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;
    }
})();

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

于 2013-09-25T07:23:11.530 回答
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');"/>
于 2013-09-25T07:26:12.740 回答