【发布时间】:2015-06-29 22:24:47
【问题描述】:
借助 jquery-ui 的可拖放和可拖放功能,我能够拖动 div 并合并它们的内容,但是,客户端也希望具有撤消/取消连接功能。例子:如果有3个div,分别命名为a、b、c,用户将b合并到a,将c合并到(a+b),然后点击UNDO按钮,用户应该得到c和(a+b) ,如果用户再次单击 UNDO,则 a、b 和 c 应显示为在任何合并发生之前的状态。
我正在尝试用数组来做这件事,以便我可以存储正在合并的内容的不同状态:
var a = new Array(),
b = new Array(),
d = new Array(),
c = new Array(),
rel = new Array();
有 4 个数组,'b' 保存可拖动 div 中的文本,'a' 保存可拖放 div 的内容,'b' 将合并并在 'c' 中替换,'d' 保存原始来自 'a' 的内容,以便 UNDO 可以发生。 'Rel' 是在撤消功能中使用的关系,通过添加 'var[rel]' 类来引用合并的 div,var 'i' 也用于相同。
HTML:
<div class="document_content">
<div class="row clause"> ... </div>
<div class="row clause"> ... </div>
<div class="row clause"> ... </div>
<div class="row clause"> ... </div>
.
.
.
</div>
Javascript/jQuery:
$('.row.clause').droppable({
accept: '.clause',
drop: function (event, ui) {
...//code goes here for successful drop/merge
}
});
$('.row.clause').draggable({
revert: false,
start: function (event, ui) {
ui.helper.data('dropped', false);
},
stop: function (event, ui) {
...//code goes here for unsuccessful merge
}
});
UNDO 按钮有一个计数器,它指示 div 被合并的次数和/或 UNDO 可能发生的次数。
对于混乱的代码,我深表歉意,目前还处于开发的早期阶段。
【问题讨论】:
-
不要使用
var a = new Array();相反,更喜欢数组文字:var a = []
标签: javascript jquery html jquery-ui