一旦Javascript变量达到特定数字,使内容可见

时间:2013-01-18 09:39:21

标签: javascript

我是一个javascript noob。一旦用户点击页面上的3个链接,我想在我的页面上显示不同的内容。 因此,我假设我想要一个变量,该变量在链接的每次点击时都会增加,而if语句只会在变量达到我想要的数字后才会出现内容。这是我到目前为止所得到的:

<script>
var pass = 0;
function clicked() {
pass = pass + 1;
}
</script>

然后在链接上:

<a href="example.com" onclick="clicked();">LINK</a>

然后是内容

<script>    
if (pass > 1) {
document.write('<a href="first.html">First</a><br>') }
else {document.write('<a href="second.htm">Second</a><br>') }
</script>

它不起作用,变量总是等于0.任何想法?

2 个答案:

答案 0 :(得分:1)

你的'内容脚本'只被调用一次(当pass仍然为零时)。

每次点击链接时都需要检查:

var pass = 0;
function clicked() {
   pass = pass + 1;
   if (pass > 1) {
      document.write('<a href="first.html">First</a><br>');
   } else {
      document.write('<a href="second.htm">Second</a><br>');
   }
}

答案 1 :(得分:0)

以下是一个例子:

var count = 1,
    topics = ['Hello', 'Well...', 'Goodbye'];
function clickHandler() {
  if (count >= 3) {
    changeText(Math.round((Math.random() * 2)));
    count = 1;
  } else {
    count += 1;
  }
}

function changeText(idx) {
  document.getElementById('content').innerHTML = topics[idx]; 
}

当按下链接3次后,您将从列表中获取随机内容(topics)。

改变了什么

  1. clickHandler计数器正在重置,因此每次点击3次随机内容都会显示
  2. 我使用innerHTML代替document.write - 更好的做法
  3. 每次点击都会检查
  4. count,而不是检查pass
  5. 示例 here