【问题标题】:Global boolean not working within function - Javascript全局布尔值在函数中不起作用 - Javascript
【发布时间】:2013-07-25 17:43:43
【问题描述】:
<script>
var xTurn = true;
function changeImage()
{
    element=document.getElementById('myimage')
    if (element.src.match("/wp-content/uploads/2013/07/squaree.png") && xTurn)
    {
        xTurn = false;
        element.src="/wp-content/uploads/2013/07/xx.png";
    }
    else if (element.src.match("/wp-content/uploads/2013/07/squaree.png") && xTurn==false);
    {
        xTurn = true;
        element.src="/wp-content/uploads/2013/07/circ.png";
    }
}
</script>

<img id="myimage" onclick="changeImage()" src="/wp-content/uploads/2013/07/squaree.png" width="90" height="90">

由于某种原因,xTurn 似乎在此函数中不起作用。如果不正确,我是否引用?顺便说一句,这是在 wordpress 中。我已经检查以确保图像在没有使用 xTurn 的情况下发生变化。

【问题讨论】:

  • xTurn 应该在该函数闭包中可见。我的猜测是您的代码还有其他问题。试试console.log(xTurn)
  • 你做了两次同样的检查: element.src.match("/wp-content/uploads/2013/07/squaree.png") 但在某些时候你将图像更改为 xx.png那么你的条件都不满足
  • 嗯,最初我希望图像是正方形,然后在更改后我希望它保持 x 或圆形,然后下次单击正方形图像时,它将是x 或 circle 取决于最后一张图片,所以我的逻辑似乎是正确的。它现在工作。这是它的样子:pastebin.com/HjH7Dr5T

标签: javascript variables boolean global


【解决方案1】:

我认为你使用匹配错误,element.src 会给你完整的 url

http://domain....

尝试类似的东西

element.src.indexOf("squaree") != -1

【讨论】:

  • 什么是 xTerm?将它附加到窗口对象是什么意思?您的示例工作正常,我必须在 if(xTurn) 条件之外添加条件以检查它是否是原始图像(如您在我的原始代码中所见)。 if(boolean && boolean){//code} 的正确语法是什么,因为它似乎对我不起作用!第一天使用 javascript...叹息..
  • 嗯?它现在似乎有效,您是否编辑了答案?您之前的代码对我有用,但我必须在 if(xTurn) 条件中添加额外的 if 语句以满足我的要求。还没有弄清楚如何正确使用 &&,但我会自己查找。谢谢!
  • 没有编辑它..你使用 && 正确..但我会使用 && !xTurn
  • 同时删除“;”在这部分...这可能是一个问题 png") && xTurn==false);
猜你喜欢
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多