简单JS if语句不起作用

Simple JS if Statement Not Working

本文关键字:不起作用 语句 if JS 简单      更新时间:2023-09-26

我有一个if语句,如果条件为true,它应该弹出一个警报窗口,nut什么都不发生。

它没有得到变量的值,但变量显示在一个名为result的div中。

JS:

$x = 0;
$(window).load(function () {
    $(".DragItem").draggable({
        revert: 'invalid',
        helper: "clone"
    });
    $(".drop1").droppable({
        accept: '#1',
        activeClass: 'DropTargetValid',
        drop: function (ev, ui) {
            var id = $(ui.draggable).attr("id");
            $(ev.target).append(ui.draggable.clone());
            $("#" + id).draggable('disable');
            $x++;
            document.getElementById("result").innerHTML = $x;
        }
    });
    $(".drop2").droppable({
        accept: '#2',
        activeClass: 'DropTargetValid',
        drop: function (ev, ui) {
            var id = $(ui.draggable).attr("id");
            $(ev.target).append(ui.draggable.clone());
            $("#" + id).draggable('disable');
            $x++;
            document.getElementById("result").innerHTML = $x;
        }
    });
    $(".drop3").droppable({
        accept: '#3',
        activeClass: 'DropTargetValid',
        drop: function (ev, ui) {
            var id = $(ui.draggable).attr("id");
            $(ev.target).append(ui.draggable.clone());
            $("#" + id).draggable('disable');
            $x++;
            document.getElementById("result").innerHTML = $x;
        }
    });
    $(".drop4").droppable({
        accept: '.DragItem',
        activeClass: 'DropTargetValid',
        drop: function (ev, ui) {
            var id = $(ui.draggable).attr("id");
            $(ev.target).append(ui.draggable.clone());
            $("#" + id).draggable('disable');
        }
    });
});
if ($x == 3) {
    // code to be executed if condition is true
    alert('Well Done');
} else {
    // code to be executed if condition is false
}

看起来您的条件只运行一次,即在启动滴管之后。你打算把它放在一个函数中,并在每次drop回调中调用该函数吗?

function checkIfXEqualsThreeYet() {
    if ($x == 3) {
        // code to be executed if condition is true
        alert('Well Done');
    } else {
        // code to be executed if condition is false
    }
}

以及您的投递回拨:

$x++;
checkIfXEqualsThreeYet();

你当然可以简化它。要做的一件事可能是在函数中增加x,即创建一个incrementXAndCheckIfItEqualsThree()。也可能是这样的情况,您可以在不使用计数器的情况下检查DOM并查看您的条件是否得到满足,但我将把它留给您,因为只有您知道您的代码。不管怎样,以上内容应该能帮助你解决手头的问题。

将if语句作为一个函数,并添加了一个按钮来运行该函数。

<input type="button" onClick="Result()">
function Result(){
if($x == 3) {
    // code to be executed if condition is true
    alert ('Well Done');
} 
else {
    // code to be executed if condition is false
}  
}