我实现了jQuery UI draggable和selectable。当我有两个组件初始化它并且我选择其中一个时,如果我点击其他组件而没有鼠标释放并开始拖动它,那么" ui-selected" class已从其他组件中删除,但在任何可选事件中都没有输入。
我需要一个方法或事件,在我上面描述的动作之后进入。
可选择:
Selectable: {
init: function(el) {
$(el).selectable({
filter: '.existing-component',
selecting: function (event, ui) {
$(event.target).children('.ui-selecting').find('.existing-component').removeClass('ui-selecting');
},
stop: function(event, ui) {
console.log('stop');
});
start: function(event, ui) {
console.log('start');
});
});
// manually trigger the "select" of clicked elements
$(el).find('.existing-component').click( function(e){
.
.
.
$(el).selectable('refresh');
$(el).data("ui-selectable")._mouseStop();
});
}
}
可拖动的:
Draggable: {
init: function(el, options) {
$(el).draggable(options, {
scroll: false,
snap: '.gridlines',
snapTolerance: $('.grid').attr('data-size') / 2,
// revert: "invalid",
preventCollision : true,
preventProtrusion : false,
collisionVisualDebug : false,
drag: function(event, ui) {
console.log('drag')
}
});
}
}
答案 0 :(得分:0)
我发现我的方法,在上面描述的操作中进入Draggable.start事件并且仍然选择了前一个组件。