2011-04-28 22 views
0

一個學校項目,我正在做一個拼圖出來的jQuery和JavaScript。 我使用jQuery和jQuery jQuery的即興(自定義警報消息)。這可能與jQuery和/或JavaScript中的警報?

現在的問題是,我希望自己的網站給予警告,如果所有的四件正確定位。這可能嗎? 它目前爲每個正確定位的部分提供消息。

jQuery代碼:

$(function() { 
    $(".draggable_l_t").draggable({ snap: ".droppable_l_t, .droppable_r_t, .droppable_l_b, .droppable_r_b", snapMode: "inner" }); 
    $(".draggable_r_t").draggable({ snap: ".droppable_l_t, .droppable_r_t, .droppable_l_b, .droppable_r_b", snapMode: "inner" }); 
    $(".draggable_l_b").draggable({ snap: ".droppable_l_t, .droppable_r_t, .droppable_l_b, .droppable_r_b", snapMode: "inner" }); 
    $(".draggable_r_b").draggable({ snap: ".droppable_l_t, .droppable_r_t, .droppable_l_b, .droppable_r_b", snapMode: "inner" }); 

    $(".droppable_l_t").droppable({ 
     accept: ".draggable_l_t", 
     drop: function(event, ui) { 
      $(this) 
        $.prompt('Goed geplaatst.',{ buttons: { Ok: true, Cancel: false }, focus: 1 }); 
     } 
    }); 

    $(".droppable_r_t").droppable({ 
     accept: ".draggable_r_t", 
     drop: function(event, ui) { 
      $(this) 

        $.prompt('Goed geplaatst.',{ buttons: { Ok: true, Cancel: false }, focus: 1 }); 
     } 
    }); 

    $(".droppable_l_b").droppable({ 
     accept: ".draggable_l_b", 
     drop: function(event, ui) { 
      $(this) 
        $.prompt('Goed geplaatst.',{ buttons: { Ok: true, Cancel: false }, focus: 1 }); 
     } 
    }); 
    $(".droppable_r_b").droppable({ 
     accept: ".draggable_r_b", 
     drop: function(event, ui) { 
      $(this) 
        $.prompt('Goed geplaatst.',{ buttons: { Ok: true, Cancel: false }, focus: 1 }); 
     } 
    }); 
}); 
</script> 

全幅可達here。其他文件是here

能不能幫我解決這個問題?在此先感謝,Friso

+0

爲什麼不保持一個全球性的雜物每當一件成功的作品放置時,它就會增加。在每一次成功之後,增加它並看看它是否等於4? – neebz 2011-04-28 10:41:43

回答

0

可能這樣做與jQuery 1.5 Deferred()對象。

每段創建一個這樣的對象:

var def = []; 
for (var i = 0; i < 4; ++i) { 
    def[i] = $.Deferred(); 
} 

然後,當每片完成時,resolve適當的延遲對象:

def[n].resolve(); 

然後,在代碼的結束時,註冊回調那唯一的調用時就大功告成了:

$.when.apply($, def).done(function() { 
    // this will be called only when all the promises are resolved 
}); 
+0

感謝您的快速回復,但我在將代碼放入代碼時遇到了一些問題。我沒有太多的jQuery經驗。你能告訴我該把代碼具體放在哪裏嗎?我應該如何處理當前的警報(提示)? – Friso 2011-04-28 11:15:05

+0

把第一塊右頂部,每個'drop'回調函數內的'resolve',並在最後的'when'塊的權利。 – Alnitak 2011-04-28 11:16:36