我正在制作下面的拖放示例的原型,除了无法触发drop事件之外,它可以完成我要求的所有操作。
元素只是还原而不粘贴到content div中。你知道我错过了什么吗
<ul class="keywords">
<li class="draggable" id="kw-1">keyword one</li>
<li class="draggable" id="kw-2">keyword two</li>
<li class="draggable" id="kw-3">keyword three</li>
</ul>
<div id='editorcontainer'>
<textarea rows='10' class='theEditor' cols='40' name='content' id='content'>drop content here</textarea>
</div>
jQuery(".myDiv").find("li").each(function(){
jQuery(this).draggable(
{
revert:true,
helper:'clone',
start: function(event, ui) {
jQuery(this).fadeTo('fast', 0.5);
},
stop: function(event, ui) {
jQuery(this).fadeTo(0, 1);
}
});});
jQuery('#content').droppable({
drop: function(event, ui) {
alert('dropped') //DOES NOT FIRE!
//drop text into content editor
}
});发布于 2011-08-05 04:31:54
您使用的是revert:true选项,该选项在droppable上的drop事件触发之前恢复每个删除操作。替换为:
jQuery(this).draggable(
{
revert:true, // <-- Revert every single drop
helper:'clone',
start: function(event, ui) {
jQuery(this).fadeTo('fast', 0.5);
},
stop: function(event, ui) {
jQuery(this).fadeTo(0, 1);
}
});有了这个:
jQuery(this).draggable({
revert: 'invalid', // <-- Revert invalid drops
helper: 'clone',
start: function(event, ui) {
jQuery(this).fadeTo('fast', 0.5);
},
stop: function(event, ui) {
jQuery(this).fadeTo(0, 1);
}
});示例: http://jsfiddle.net/7t56R/
https://stackoverflow.com/questions/6948100
复制相似问题