2013-03-08 144 views
1

當我將drag元素添加到droppable區域時,它會向服務器發送socket。每當append頁面有新元素時,drop: function() {}不會在添加元素被刪除時觸發,它只在頁面刷新後才起作用,儘管drag函數可以工作。附加元素的jQuery拖放功能

問題

有沒有綁定drop功能的追加要素的方法嗎?

代碼

var UI = { 
    droppedArea: $('.dropArea'), 
    initialArea: $('#init-area') 
}; 

UI.droppedArea.droppable({ 
    drop: function(event, ui) { 
     var dropped = ui.draggable; 
     var droppedOn = $(this), 
     /* Rest of the code */ 
     socket.emit('move', data); 
    } 
}); 

// Element appended like this 
function newItem(data) { 
    var html = '<li>'+data.content+'</li>'; 
    UI.initialArea.append(html); 
} 

// From the server 
socket.on('new', function(data) { 
    newItem(data); 
}); 
+0

這是一個錯字捕獲? 'UI.dropArea' ..它應該是'UI.droppedArea' – 2013-03-08 10:50:34

+0

是的。將現在修復它 – ashley 2013-03-08 10:53:18

回答

0

想通了,爲什麼。

drop: function()之下,我有一個accept:選項,該值是DOM元素,具有存儲在變量中的類的類型。

因此,任何所附的元件不是由變量引用的,所以它們沒有被由所述功能

var UI = { 
    var item = $('.the_item') 
} 

drop: function() { 
    accept: UI.item, 
}