原始问题
有没有办法写条件if ( "no draggables have been dropped in these droppables" )
?我知道也许jQuery是可能的;我想它看起来像这样:
if ( $('.droppable').something( $('.draggable') ); )
但我真的不知道要使用的确切代码。在jQuery库中是否存在现有方法,或者我是否需要创建一个新函数来手动检查是否有任何可拖动文件被删除?
修改
为这样一个简短的问题道歉;我只需要一些快速的编码知识,因为我需要快速完成项目,所以我发布了一个很快回答的问题。
这个问题已得到解答,但由于它已被搁置并且不清楚,我已经决定添加一些项目细节,以查看其他人是否有任何其他建议以及现在如何处理掉落物。
项目规范
我试图让我的droppables显示"错误"当用户按下.css('border', '1px solid red')
按钮而不删除任何可拖动内容时,请回复submit
。我将信息存储在变量checkwrong = 'false'
中作为默认值,因此如果任何可拖动的数据未被丢弃在错误的droppable中,checkwrong
将被设置为'false'
,并且将返回&#34 ; CORRECT"反馈
但问题是,每次用户按下提交按钮而不丢弃任何可拖动的内容时,droppables将始终显示" CORRECT" .css('border', '1px solid lime')
因为如果没有删除可拖动的内容,则没有代码更改checkwrong
的值。
解
我创建了一个代码块,在单击提交按钮时运行:
if (!$('.checkBox').hasClass('dropped')) {
checkwrong1 = "true";
checkwrong2 = "true";
checkwrong3 = "true";
checkwrong4 = "true";
checkwrong5 = "true";
}
.checkBox
是我所有droppable的通用类,我将代码$('.checkBox').addClass('dropped');
设置为在每个可放置的drop:
事件上运行。
这是一个代码块的片段,只要将draggable放入droppable就可以运行。
#dropAreaCheck1
是droppable的唯一ID,
#cMark1, #cMark2, etc.
是可拖动的唯一ID。
$( "#dropAreaCheck1" ).droppable({
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
cursor: "arrow",
drop: function( event, ui) {
console.log(ui.draggable.attr('id')) ;
checkwrong1="true";
checkanswers ++;
if (checkanswers == 3) { $('.checkBox').droppable({ disabled: true }); };
$('.checkBox').addClass('dropped');
$('#dropAreaCheck1').droppable( 'disable' );
if(ui.draggable.attr('id') == "cMark1"){ $( "#cMark1" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark2"){ $( "#cMark2" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark3"){ $( "#cMark3" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark4"){ $( "#cMark4" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark5"){ $( "#cMark5" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark6"){ $( "#cMark6" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark7"){ $( "#cMark7" ).draggable({ disabled: true }); }
if(ui.draggable.attr('id') == "cMark8"){ $( "#cMark8" ).draggable({ disabled: true }); }
$( ".drag" ).css( 'cursor', 'default' );
$( ".draggable" ).draggable({ disabled: false });
$( "#dropAreaCheck1" ).append(ui.draggable.css('position','static'))
$( ".drag" ).append(ui.draggable.css('margin','5px 0'))
$(this).droppable( 'disable' );
}
});
答案 0 :(得分:1)
当你放弃某些东西时,你会执行一些代码。使用此代码及其结果状态来确定是否已删除某些内容。
例如,从<div class="droppable undropped">
开始,然后执行$('.droppable').removeClass('undropped')
。然后你可以通过$('.droppable.undropped')
选择“原始”的那些。
或者如果代码将某些东西放入droppable中,您可以选择其内容(或不存在)。
如果不知道你究竟如何处理Droppable,我就无法更明确地回答这个问题。