-1

同じ変数をインクリメントする 2 つの関数があります。それぞれの 1 つは onClick を実行するための独自の html ボタンを持っています。

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

そして関数click1()内には、clicks = 5のときに新しいテキスト行を追加するifステートメントがあります

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

しかし、click2()関数で5回クリックすると、ifステートメントが機能せず、ifステートメントを関数の外に置くと、まったく機能しませんでした。if ステートメントを機能させるために、すべての関数からの var クリックを処理する方法はありますか?

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

クリックは、すべての関数の外にあるグローバル変数にする必要があります。

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 に答える