0

テーブル内の文字を変更し、特定の文字の色を変更するスクリプトを設定することができました。私がやりたいのは、2 回目のクリックで異なる文字と色を表示することですが、どうすればよいかわかりません。

var isStart = false;
var letterString = "D0E916C0A8CED059359C02DARREN KORB - PALE WATCHERS.mp3E415AAB0014400E104B40DE96A0";
var letters = letterString.split('');
var currentLetter = 0;
var intervalID;

function changeLetter() {
    $("#t-"+currentLetter).text(letters[currentLetter - 1]);
    currentLetter +=1 ;
    if (currentLetter == 23) {
        $("#t-23").css("color", "#d49a9a");   
    }
    if (currentLetter == 24) {
        $("#t-24").css("color", "#d49a9a");             
    }
    if (currentLetter == 25) {
        $("#t-25").css("color", "#d49a9a");             
    }
        if (currentLetter == 26) {
           $("#t-26").css("color", "#d49a9a");             
    }
}


$(document).ready(function() {
    var image = $('#content').click(function() {
        if  (!isStart) {
            isStart = true;
           intervalID =  setInterval(changeLetter, 100);
        }
    });
});
4

2 に答える 2

0

jQuery の.one()メソッドを使用します。イベントを一度キャッチすれば、その後のクリックで別のことを行うことができます。

var image = $('#content').one('click' function() {
    // doSomething

    $(this).on('click', function() {
        if  (!isStart) {
            isStart = true;
           intervalID =  setInterval(changeLetter, 100);
        }
    });
});
于 2013-04-19T19:49:05.807 に答える
0

クリック数をカウントする変数を追加してから、クリック関数で値を増やしてチェックし、何をしたいかを決定します。このような:

var currentLetter = 0;
var intervalID;
var clickCount = 0; // <-- add this line


if  (!isStart) {
    clickCount++;
    if (clickCount == 1) {
        //do the first click stuff
    }
    if (clickCount == 2) {
        //do the second click stuff
    }
}

2 回以上のクリックを処理する場合は、switch ステートメントを使用することをお勧めします。デフォルトのケースは、特に処理しないすべてのカウントに適用されます。

于 2013-04-19T19:44:26.570 に答える