如果语句执行即使为false

时间:2014-10-23 08:35:06

标签: javascript jquery if-statement recursion

所以我有一个if语句,用于检查droppable中刚刚删除的draggable的id。我使用console.log检查了控制台,看看if语句是否正常工作。它返回正确的true / false值,但即使它返回false,它仍然执行代码而不是else。我没有发布到很多代码,因为我很确定这是我的if语句的问题,而不是整个代码。无论我在===之后放置什么,if语句都会执行。我看到其他人遇到了这个问题,这与无限递归有关,但答案对于他的代码来说太具体了,无法理解。

$("#game1drop1").droppable ({
    drop: function(e,ui) {
        if ($(ui.draggable[0].id === "game1img1")) {
            $("#game1drop1").addClass("correct")}
        }
        else{
            $(ui.draggable[0]).addClass("positionWrong")
        }
    }   
});

1 个答案:

答案 0 :(得分:6)

这是因为你的$()缠绕着你的考试。所以它相当于:

if ($(false)) {

这是将false包装在jQuery对象中,并且所有对象都是真实的。

应该是:

if (ui.draggable[0].id === "game1img1") {