解决此问题的一种方法是在放置的元素中存储它是否放置在有效的正方形中。这意味着当它移动到无效方格时,您可以检查它以前是否在有效方格中,如果是这种情况,则将分数减一。
希望这很清楚!
有关现场演示,请参见http://jsfiddle.net/pET3y/
相关代码:
if ( slotNumber == imgNumber ) {
ui.draggable.addClass( 'img-match' );
ui.draggable.data("valid", true);
imgMatch++;
} else {
if(ui.draggable.data("valid")) {
imgMatch--;
ui.draggable.data("valid", false);
}
}
alert(ui.draggable.data("valid"));
注意:小提琴有调试警报
--
更改为拖动分数下降
您现在要做的是监听拖动事件(称为activate
),并在调用该事件时运行一个函数。该函数检查被拖动的元素之前是否处于正确的位置,如果是,则将其标记为不在正确的位置并降低分数。
见:http: //jsfiddle.net/3NkwJ/1/
drop: handleDropEvent,
activate: handleDragEvent //add new event
} );
并添加以下内容:
function handleDragEvent( event, ui ) {
if(ui.draggable.data("valid")) {
imgMatch--;
$('input[name=Score]').val(imgMatch);
$('#score h1').text(imgMatch);
ui.draggable.data("valid", false);
}
}