【发布时间】:2012-11-08 08:20:01
【问题描述】:
当将一个元素从<div id="catalog" > 拖放到一个框即<div id="dialogIteration"> 时工作正常。但是当第二次拖放相同的元素时,它很容易被丢弃但我想要它不应该删除并发出“语句已退出”的警报。
【问题讨论】:
标签: jquery html jquery-ui-draggable jquery-ui-droppable
当将一个元素从<div id="catalog" > 拖放到一个框即<div id="dialogIteration"> 时工作正常。但是当第二次拖放相同的元素时,它很容易被丢弃但我想要它不应该删除并发出“语句已退出”的警报。
【问题讨论】:
标签: jquery html jquery-ui-draggable jquery-ui-droppable
在你的draggable 中使用一个标志来表明它是否已经被放到你的对话框中。
drop: function (evt, ui) {
// logic
if (ui.draggable.attr('data-dropped')) {
// don't perform the drop
} else {
// perform the drop
ui.draggable.attr('data-dropped', true);
}
}
如果您只想让当前被丢弃的那个不再是droppable,那么在成功丢弃时重置draggable 属性。
drop: function (evt, ui) {
// logic
if (ui.draggable.attr('data-dropped')) {
// don't perform the drop
} else {
// perform the drop
$('tag[data-dropped=true]').attr('data-dropped', false);
ui.draggable.attr('data-dropped', true);
}
}
【讨论】:
这是一个例子:http://jsfiddle.net/7683X/35/
我使用:contains选择器来检查文本是否已经被拖放到可放置元素中:
drop: function(event, ui) {
if($("#dialogIteration ol:contains('"+ui.draggable.text()+"')").length > 0)
{
alert("Statement already exits");
return false;
}
...
}
【讨论】: