在新类jquery上启用draggable

时间:2014-12-23 11:39:02

标签: javascript jquery jquery-ui drag-and-drop draggable

我有两个项目数组。一个是图像,另一个是图像。这些形成了学生的拖放活动。拖动到单词的图片会将类指定为.right.wrong,具体取决于它们是否准确。学生每张图片得到一滴,所以当这些课程被删除时,这两个课程都会变得无法抓取:

function handleCardDrop( event, ui ) {
 slotNumber = $(this).data( 'number' );
 cardNumber = ui.draggable.data( 'number' );
 ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
   if (slotNumber == cardNumber) {
    ui.draggable.removeClass('wrong');
    ui.draggable.addClass('right');
    $('.right').draggable('disable');
    correctCards++;
   } else {
    ui.draggable.addClass('wrong');
    $('.wrong').draggable('disable');
   };
}

学生可以通过按钮随时查看他们的工作。单击此按钮时,我会运行检查功能:

function checker() {
 if ( correctCards == howManyItems ) {
 $('#successMessage').show();
 $('#successMessage').animate( {
  left: '380px',
  top: '200px',
  width: '400px',
  height: '100px',
  opacity: 1
 } );
} else {            
 alert("Nice try, but not quite. You have " + correctCards + " correct.");
 $(".picpos").data("left", $(".picpos").position().left).data("top", $(".picpos").position().top);
 $(".wrong").animate({
        "left": $(".picpos").data("left"),
        "top": $(".picpos").data("top")
 });
};
 $('#pic').removeClass('wrong').addClass('redo');
 $('.redo').draggable({disabled: true});
 $('.redo').draggable('enable');
};

归类为.wrong的答案将恢复为其起始位置,然后将其班级更改为.redo

我遇到的问题是,draggable似乎并未真正适用于.redo,我尝试了几种不同的方式来应用它。因此,当图像现在动画回到它们的起始位置时,它们就不能被拖动。

我还要补充说,当图像返回时,必须从.wrong更改类。如果他们保留该课程,一旦学生在第二次尝试时犯了一个错误的丢弃,之前错误的任何图像都会被handleCardDrop函数呈现为不可分割,因为它会禁用.wrong类图像。 / p>

1 个答案:

答案 0 :(得分:0)

我似乎已经弄清楚了。

我只是在#pic上发起draggable而不是向.wrong添加新类,而是调用它,然后从现在可重新拖动的图片中删除了类.wrong因此:

    $('.wrong').draggable({disabled: true});
    $('.wrong').draggable('enable');
    $('.wrong').removeClass('wrong');