当draggable使嵌套可排序时调用Drop
Drop is called when draggable is leaving nested sortable
我有一个带有嵌套的Sortable和Draggable的Droppablediv,它连接到Sortable并被Droppable接受。
<div id="droppable">
<div id="nested-sortable"></div>
</div>
<div class="draggable">
test
</div>
jQuery(2.0.2)
$("#droppable").droppable({
accept: ".draggable",
drop: function() {
console.log('Dropped'); //This should be called on drop!!
}
});
$("#nested-sortable").sortable({
placeholder: 'item',
});
$(".draggable").draggable({
connectToSortable: "#nested-sortable",
helper: "clone"
});
我的问题是,当我将Dragable拖动到Sortable上时,会触发drop事件。我不明白为什么-我还没有把它掉下来。
我用这把小提琴复制了它:http://jsfiddle.net/9ydp3L7q/3/
感谢
我找到了一个肮脏的解决方法。我真的不喜欢它,但它似乎还可以。
如果帮助程序有ui可排序的帮助程序(当它超过可排序时会得到),我会忽略drop。
$("#droppable").droppable({
accept: ".draggable",
drop: function(event, ui) {
if (ui.helper.hasClass("ui-sortable-helper")) {
return;
}
console.log('Dropped');
}
});
但我必须手动将该类从可排序项中删除。如果我试图删除我进入的类并插入循环(页面上的javascript崩溃),那么我必须在超时时完成。
$("#nested-sortable").sortable({
placeholder: 'item',
out: function(event, ui) {
// this looks kind of dirty to me
setTimeout(function () {
$(ui.helper).removeClass("ui-sortable-helper")
}, 1);
}
});
固定小提琴:http://jsfiddle.net/9ydp3L7q/6/
使用disable
进行可排序,同时使用可拖动。和在使用可排序时对可拖动使用禁用。
$( ".selector" ).sortable( "disable" );
$( ".selector" ).draggable( "disable" );
或
$('.selector').draggable({
disabled: false
});
$(".selector").sortable({
disabled: false
});
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 当draggable使嵌套可排序时调用Drop
- 如何在jquery的drop方法中调用函数
- 为什么子元素会导致'dropleaf'要调用(drag-n-drop文件上传)
- 为什么函数drop被调用了四次而不是一次?
- 如何调用ondragstart和drop事件手动javascript
- 如何在Select2中调用click事件添加按钮到Select2 -drop和Select2 -no-results
- 在AngularJS指令中不会调用Drop事件