有人能告诉我为什么第二个if语句条件得到满足。
这是代码
$("#car").draggable({
start: function(event, ui) {
if (!done) return false;
},
stop: function(event, ui) {
if (counter >= 40 && $(".correct").length == $(".drop").length) {
setTimeout(function() {
$('#win').text(winner +' '+ 'stars' + ' ' + 'earned' + ' Completion time' + ' ' + counter + ' seconds');
}
}
}
});
// for droppable...
$("#carDrop").droppable({
accept: "#car",
drop: function(event, ui) {
if(ui.draggable.is("#car")){
$(this).addClass("correct");
ui.draggable.fadeOut(500);
$(this).fadeOut(500,function(){
});
}
}
});
我使用提醒框检查了.correct
和.drop
的长度,.correct
的长度为8,.drop
的长度为5.但是当我拖动时图像并删除它然后第二个if语句工作,它没有意义。 Here is fiddle。它没有在小提琴中起作用。我认为小提琴中的框架存在问题。
答案 0 :(得分:0)
在可放置的stop
事件之前,可以解除可拖动的drop
事件吗?这可以解释为什么没有.correct
类导致该语句被评估为未定义的' ==' undefined'因此true
。
答案 1 :(得分:0)
尝试将第二个条件包装在括号中的if语句中,如下所示:
if (counter >= 40 && ($(".correct").length == $(".drop").length)) {
这是因为$([selector]).length
实际上是true