1

当我drag将一个元素发送到一个droppable区域时,它会向socket服务器发送一个。每当我append向页面添加新元素drop: function() {}时,删除附加元素时不会触发,它仅在页面刷新后才起作用,尽管该drag功能有效。

问题

有没有办法将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);
});
4

1 回答 1

0

想通了为什么。

在 下drop: function(),我有一个accept:选项,它的值是 DOM 元素,具有类的类型,存储在变量中。

因此,任何附加的元素都没有被变量引用,所以它们没有被函数捕获

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

drop: function() {
    accept: UI.item,
}
于 2013-03-08T15:53:54.677 回答