我有一个使用jQuery UI的可追踪和可放置功能的脚本。
将项目从左侧面板拖动到主区域并放下。
有两种情况:
项目被放入其他框中,在页面加载时预设,或者可以放入主区域以创建新框。可以在框之间移动项目。这个设置一切正常。
在第二种情况下,主区域没有预设框。它们应该是在从左侧面板拖放项目时创建的。但是,出于某种原因,它只允许我创建一个盒子。这是一个example。
我的UI熟练程度不足以发现问题所在。
答案 0 :(得分:1)
您的问题在于此代码:
$.when(createEmptyStack()).then(function(data) { ... }
data
始终为""
,这意味着您正在尝试一遍又一遍地向页面添加相同id
的新元素(您对{{1}的AJAX请求}没有在响应中返回任何内容)。这就是它第一次正常工作的原因; createEmptyStack
不存在,因此代码按预期工作。
当您将另一个项目拖动到主区域时,元素可以成功附加,但它具有重复的id
。这段代码:
id
(与上面的代码在同一个区块中)
始终使用可拖动对象调用putCardIntoStack(ui.draggable,newstackId);
作为STACK
。
简而言之,这是服务器端代码没有返回堆栈ID的问题。根据Firebug的说法,你的AJAX请求根本没有返回任何内容。