我正在创建一个带4个参数的函数。然后,它会将参数的值放在div中。如果用户点击div,它将运行一个函数。然后,它将删除选择div中的值。
var fullDialogChoices = function(choice1, choice2, choice3, choice4) {
$("#choice1").html("<p>" + choice1 + "</p>");
$("#choice2").html("<p>" + choice2 + "</p>");
$("#choice3").html("<p>" + choice3 + "</p>");
$("#choice4").html("<p>" + choice4 + "</p>");
choiceDisplayVar = true;
if(choiceDisplayVar == true) {
$("#choice1").click(function() {
addDialogUser_0(choice1)
deleteChoicesVar = true;
choiceDisplayVar == false;
});
$("#choice2").click(function() {
addDialogUser_0(choice2)
deleteChoicesVar = true;
choiceDisplayVar = false;
});
$("#choice3").click(function() {
addDialogUser_0(choice3)
deleteChoicesVar = true;
choiceDisplayVar = false;
});
$("#choice4").click(function() {
addDialogUser_0(choice4)
deleteChoicesVar = true;
choiceDisplayVar = false;
});
}
else if(deleteChoicesVar == true) {
closeChoices();
deleteChoiceVar = false;
choiceDisplayVar = false;
}
}
我知道我没有正确格式化这个功能。有人可以告诉我如何制作它,所以当用户点击一个div时,他不能点击其他人,它会执行else if语句中的操作。现在,用户可以继续点击选择div并运行与之关联的功能。
谢谢!
更新 谢谢大家,我很抱歉它不是很清楚,但我发现了该怎么做。
答案 0 :(得分:0)
您需要在if
处理程序中执行click
,而不是在绑定所有处理程序时。无需在函数内部绑定处理程序,您可以全局执行此操作。在您调用该函数之前,他们不会执行任何操作,因为这会将choiceDisplayVar
设置为true
。
var choiceDisplayVar = false;
var fullDialogChoices = function(choice1, choice2, choice3, choice4) {
$("#choice1").html("<p>" + choice1 + "</p>");
$("#choice2").html("<p>" + choice2 + "</p>");
$("#choice3").html("<p>" + choice3 + "</p>");
$("#choice4").html("<p>" + choice4 + "</p>");
choiceDisplayVar = true;
}
$("#choice1, #choice2, #choice3, #choice4").click(function() {
if (choiceDisplayVar) {
addDialogUser_0($(this).text());
$(this).text(""); // Remove the value from the clicked choice DIV
closeChoices();
deleteChoicesVar = true;
choiceDisplayVar = false;
}
});
我不确定deleteChoicesVar
如何适应这一点,所以我不确定它应该是true
还是false
。