如果语句执行即使为false

Pet*_*ter 0 javascript recursion jquery if-statement

所以我有一个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")
        }
    }   
});
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 6

这是因为你已经$()完成了测试.所以它相当于:

if ($(false)) {
Run Code Online (Sandbox Code Playgroud)

这包装false在一个jQuery对象中,所有对象都是真实的.

它应该是:

if (ui.draggable[0].id === "game1img1") {
Run Code Online (Sandbox Code Playgroud)