当将一个元素从一个盒子拖放<div id="catalog" >
到一个盒子<div id="dialogIteration">
时,工作正常。但是当第二次拖放同一个元素时,它很容易被丢弃但我想要的是它不应该被丢弃并警告“声明已经退出” 。
问问题
1194 次
2 回答
2
在你的内部使用一个标志,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);
}
}
于 2012-11-08T08:28:21.037 回答
0
这是一个例子: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;
}
...
}
于 2012-11-08T22:03:28.633 回答