2012年7月26日

jQuery的droppable問題

最近在改同事寫的網頁,其中有個動態產生droppable div的功能,程式如下
function createDiv(id){
    item =  '<div id="div_' + id + '">';
    $('#div_map').prepend( item).droppable({
        drop : function(event, ui) {
                $("#div_' + id).hide(); 
                do something ....
        }
    });
}

畫面上還有幾個其他的droppable div,見鬼的是明明動態產生的div是隱藏的,但是當我把dragable的物件拉過去時,他永遠都會觸發我動態新增的最後一個div事件;假如這個func我跑五次,他就會跑到div_5去;這實在是不合理,已經hidden的東西為什麼可以droppable?

測試了好久,感覺應該是物件剛建立就被賦予這個事件出錯,於是改成:


function createDiv(id){
   item =  '<div id="div_' + id + '">';
    $('# div_map ').prepend( item);
    $('#chat_' + id).droppable({
        drop : function(event, ui) {
        $("#div_' + id).hide(); 
            do something ....
        }
    });
}

問題解決!

沒有留言:

張貼留言

精選文章

利用Selenium IDE進行UI測試

安裝與執行 Selenium IDE是Firefox的一個plugin,用來做UI的自動測試:下載網址為http://docs.seleniumhq.org/download/ 安裝後,點一下firefox 的工具 -> Selenium IDE ,就會...