我有两个增加同一个变量的函数。 其中一个都有自己的html按钮来运行onClick。
function click1() {
clicks += 1;
document.getElementById('click-count').innerHTML=clicks;
}
function click2() {
clicks += 1;
document.getElementById('click-count').innerHTML=clicks;
}
和内部函数click1()我有if语句,当click = 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语句有效?
答案 0 :(得分: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);
}
}
答案 1 :(得分:1)
点击应该是一个全局变量,位于你所有的功能之外。
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);
}
}
试试这个。
答案 2 :(得分:1)
假设您正在定义元素的onclick属性,您可以这样做:
<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);
}
}