在draggable上不会触发jQuery UI可选事件

时间:2016-07-12 07:00:28

标签: jquery jquery-ui jquery-plugins jquery-ui-draggable jquery-ui-selectable

我实现了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')
                }
          });
     }
}

1 个答案:

答案 0 :(得分:0)

我发现我的方法,在上面描述的操作中进入Draggable.start事件并且仍然选择了前一个组件。