1
我創建了一個拖放遊戲,以開始自學jquery。一切似乎都在工作,但你可以將多個物品放在同一個方格上。如果佔位符中有一個圖像,我想禁用可丟棄。如果div已被刪除,禁用刪除操作?
我已經研究過:
`greedy: true`
禁用的下降,但我不知道再怎麼也啓用:
$(this).droppable('disable');
我可以得到這些都禁用但不知道如何讓他們再次啓用它,如果塊/圖像恢復到原來的位置或移動到另一個廣場。
完整版: http://creativelabel.co.uk/drag-and-drop/
UPDATE: 這是可放開插槽的代碼。
for (var i=0; i<=19; i++) {
var images = 'images/slot' + slotNumbers[i] + '.jpg';
$('<div class="placeholder"><div class="img-slot"></div></div>').attr('id', 'slot'+slotNumbers[i]).data('slotNumbers', slotNumbers[i]).appendTo('#imgSlots').droppable({
accept: '#images img',
hoverClass: 'hovered',
drop: handleDropEvent,
activate: handleDragEvent
});
這是drop:
事件代碼:
function handleDropEvent(event, ui) {
var slotNumber = $(this).data('slotNumbers');
var imgNumber = ui.draggable.data('number');
ui.draggable.addClass('dropped');
$(this).droppable('disable');
ui.draggable.position({ of: $(this), my: 'right top', at: 'right top' });
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);
}
}
的activate:
代碼:
function handleDragEvent(event, ui) {
$(this).droppable('enable');
if(ui.draggable.data("valid")) {
imgMatch--;
$('input[name=Score]').val(imgMatch);
$('#score h1').text(imgMatch);
ui.draggable.data("valid", false);
}
}
嘛,看到你還沒有發佈任何代碼(不,我不通過你的鏈接中的整個代碼庫進行篩選)有點難以評論將代碼放在哪裏。嘗試縮小你認爲的地方*你應該啓用'droppable'並用相關的代碼部分更新你的問題 – Jamiec
好吧我已經更新了我的問題,我認爲啓用應該去哪裏。如果用戶將一個正方形拖到另一個正方形上,那麼激活代碼會取得一個分數,這對於我來說似乎是放置啓用代碼的合理位置? – ShambalaG
你試過嗎?發生了什麼? – Jamiec