Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第二次点击时的不同功能_Javascript_Jquery_Function_Click_Toggle - Fatal编程技术网

Javascript 第二次点击时的不同功能

Javascript 第二次点击时的不同功能,javascript,jquery,function,click,toggle,Javascript,Jquery,Function,Click,Toggle,我已经建立了一个脚本,可以改变表格中的字符和某些字符的颜色。我想做的是在第二次点击时有不同的字符和颜色,但我不知道我会怎么做 var isStart = false; var letterString = "D0E916C0A8CED059359C02DARREN KORB - PALE WATCHERS.mp3E415AAB0014400E104B40DE96A0"; var letters = letterString.split(''); var currentLetter = 0; va

我已经建立了一个脚本,可以改变表格中的字符和某些字符的颜色。我想做的是在第二次点击时有不同的字符和颜色,但我不知道我会怎么做

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);
        }
    });
});

添加一个变量来计算单击次数,然后在单击函数中,递增并检查该值以确定要执行的操作。像这样:

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
    }
}
var currentLetter=0;
var有效期;
var clickCount=0;// 使用jQuery的
.one()
方法。它允许您捕获一个事件一次,然后您可以通过后续单击执行其他操作

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

    $(this).on('click', function() {
        if  (!isStart) {
            isStart = true;
           intervalID =  setInterval(changeLetter, 100);
        }
    });
});

如果你不想处理超过2次的点击,那么最好使用布尔标志,而不是数字标志,因为不需要保留点击计数,这浪费了处理时间和内存(太挑剔了,我知道:P)。我同意如果你知道永远不会有超过两种不同的状态,布尔标志会工作得最好。不过,我的答案将适用于更一般的情况。