繁体   English   中英

仅OnClick可以“一次”运行

[英]OnClick Only works “once”

我如何调用该函数:

function createHTML(){
...
monthDiv.setAttribute('onclick', 'onOptionSelected(`' + monthDiv.id + '`)');
....
}

-numSelected是可以选择div的时间。

function onOptionSelected(option) {
        if(numSelected <= 2){
            numSelected ++;
            console.log("NUMSELECTEED: " + numSelected);
            selectedMonths.push(option);
            if ($('#' + option + '').hasClass("unSelected")) {
                $('#' + option + '').removeClass("unSelected").addClass("selected");

            } else if ($('#' + option + '').hasClass("selected")) {
                $('#' + option + '').removeClass("selected").addClass("unSelected");

            }
        }
    }

选择3格后,什么也没有发生,“ onclick”不起作用。

实际上,在任何框中单击3次后,两次在同一框中单击都无所谓,单击3次后不起作用。

您正在创建多个div(我假设存在某种for循环)。
删除您拥有的“ numSelected”全局变量声明,然后尝试执行以下操作:

var aNumSelected[];

function createHTML(){
    ...
    monthDiv.setAttribute('onclick', 'onOptionSelected(`' + monthDiv.id + '`)');
    aNumSelected.push({ id : monthDiv.id, numSelected : 0 });
    ....
}

function onOptionSelected(option) { 
    var numSelected;
    var i;
    for (i = 0; i < aNumSelected.length(); i++){
        if (aNumSelected[i].id == option){
            numSelected = aNumSelected[i].numSelected;
            break;
        }
    }

    if(numSelected <= 2){
        numSelected ++;
        console.log("NUMSELECTEED: " + numSelected);
        selectedMonths.push(option);
        if ($('#' + option + '').hasClass("unSelected")) {
            $('#' + option + '').removeClass("unSelected").addClass("selected");

        } else if ($('#' + option + '').hasClass("selected")) {
            $('#' + option + '').removeClass("selected").addClass("unSelected");    
        }

        aNumSelected[i] = { id: option, numSelected: numSelected };
    }
}

numselected似乎是一个全局变量,因此被所有div共享。

您必须为每个div存储一个专用值。

您的变量numSelected很可能永远不会被重置,并且作用域超出您的想象。 您可以在此增加它,但是所有按钮的值都相同。 因此,在该第三次单击上,无论按下的按钮如何, if(numSelected <= 2){失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM