jQuery UI 可选 - 不触发 mouseup

jQuery UI Selectable - mouseup is not triggered

我有一个项目列表,点击拖动和select我已经使用jQueryUI可选择。 selection 部分工作顺利,但我已将 "mousedown" 和 "mouseup" 事件委派给项目列表,但是当我包含 [=43] 时未触发 "mouseup" 事件=]-ui.css 文件.

HTML

<div id="favoritelist">
    <span>This is favorite list</span>
    <ol id="selectable">
        <li class="ui-widget-content">Item 1</li>
        <li class="ui-widget-content">Item 2</li>
        <li class="ui-widget-content">Item 3</li>
        <li class="ui-widget-content">Item 4</li>
        <li class="ui-widget-content">Item 5</li>
        <li class="ui-widget-content">Item 6</li>
        <li class="ui-widget-content">Item 7</li>
    </ol>
</div>

JS

$('#favoritelist').on("mouseup", function(){
    console.log('in favoritelist mouseup');
});

$('#favoritelist').on("mousedown", function(){
    console.log('in favoritelist mousedown');
});

$( "#selectable" ).selectable();

我包含了以下文件:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

当我包含 "jquery-ui.css" 文件时,没有触发 mouseup 事件。 但是当我删除 "jquery-ui.css" 文件时,mouseup 事件被正确触发并且 selection 也按预期工作。

我很困惑为什么当我包含 jquery-ui.css 文件时 mouseup 事件没有传播。

JSBIN LINK

这个 issue/behavior 已经在 SO and in the jQuery forums & issue tracker 上讨论过 - 它归结为一个事实,即有一个助手 DIV 被注入以显示视觉效果 "lasso" 用户会看到是否在可选择的项目周围单击并拖动。这个套索 DIV 位于鼠标和可选元素之间,因此会干扰 mouseup 事件。

引用的所有链接都建议两个选项:

  1. 在可选择的小部件上使用可选的 distance initialization parameter,或者
  2. 使用以下 CSS 覆盖:.ui-selectable-helper{pointer-events:none}

我发现后者更可靠,尽管前者是技术上首选的路线。