-1

我有两个增加同一个变量的函数。每个都有自己的 html 按钮来运行 onClick。

function click1() {
    clicks += 1;
    document.getElementById('click-count').innerHTML=clicks;
}
function click2() {
    clicks += 1;
    document.getElementById('click-count').innerHTML=clicks;
}

在函数 click1() 里面我有 if 语句,当 clicks=5 时添加新的文本行

if (clicks==5) {
var log = document.createElement("p");
log.innerHTML = 'clicks 5';
document.getElementById('clicks-log').appendChild(log);
}

但是当我通过 click2() 函数进行 5 次点击时,if 语句不起作用,如果我将 if 语句放在任何函数之外,它根本不起作用。有什么方法可以处理所有函数的 var 点击以使 if 语句起作用?

4

3 回答 3

1

您可以将 if 语句放在两个函数中,或者将控件放在从 click1 和 click2 调用的另一个函数中:

var clicks = 0;

function click1() {
    clicks += 1;
    document.getElementById('click-count').innerHTML=clicks;
    checkClicksNumber();
}
function click2() {
    clicks += 1;
    document.getElementById('click-count').innerHTML=clicks;
    checkClicksNumber();
}

function checkClicksNumber(){
    if (clicks==5) {
        var log = document.createElement("p");
        log.innerHTML = 'clicks 5';
        document.getElementById('clicks-log').appendChild(log);
    }
}
于 2013-11-13T16:59:57.837 回答
1

Clicks 应该是一个全局变量,位于所有函数之外。

var clicks = 0;

function click1() {
    clicks += 1;
    document.getElementById('click-count').innerHTML=clicks;
}

function click2() {
    clicks += 1;
    document.getElementById('click-count').innerHTML=clicks;
}

//Some function that uses 'clicks'
function readClicks(){
    if (clicks==5) {
        var log = document.createElement("p");
        log.innerHTML = 'clicks 5';
        document.getElementById('clicks-log').appendChild(log);
    }
}

试试这个。

于 2013-11-13T17:00:10.290 回答
1

假设您正在定义元素的 on click 属性,您可以执行以下操作:

<button onclick="click1();docheck();">first button</button>

<button onclick="click2();docheck();">second button</button>

并定义函数:

function docheck() {
  if (clicks == 5) {
    var log = document.createElement("p");
    log.innerHTML = 'clicks 5';
    document.getElementById('clicks-log').appendChild(log);
  }
}
于 2013-11-13T17:04:47.770 回答