[英]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.