if语句和click();

时间:2014-12-11 02:12:01

标签: javascript jquery html

我正在创建一个带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并运行与之关联的功能。

谢谢!

更新 谢谢大家,我很抱歉它不是很清楚,但我发现了该怎么做。

1 个答案:

答案 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