Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 为什么单击拖动手柄不会偷走文本焦点?_Jquery Ui_Browser - Fatal编程技术网

Jquery ui 为什么单击拖动手柄不会偷走文本焦点?

Jquery ui 为什么单击拖动手柄不会偷走文本焦点?,jquery-ui,browser,Jquery Ui,Browser,我有一个div,上面有一些文本。如果我双击div中的单词“sample”,它将高亮显示,如果我单击页面上的任何其他位置,文本将不高亮显示-除非我单击第二个框的蓝色拖动手柄。然后,“采样”保持高亮显示 如果移除手柄规格,如下所示 $('#box').draggable(); 因此,您可以从左框的任意位置拖动,然后单击该框中的任意位置,而不会丢失文本焦点 有人知道这里发生了什么吗?拖动手柄做了什么来防止窃取焦点 谢谢jQuery UI Dragable取消了它的mousedown事件。这就是为什么

我有一个div,上面有一些文本。如果我双击div中的单词“sample”,它将高亮显示,如果我单击页面上的任何其他位置,文本将不高亮显示-除非我单击第二个框的蓝色拖动手柄。然后,“采样”保持高亮显示

如果移除手柄规格,如下所示

$('#box').draggable();
因此,您可以从左框的任意位置拖动,然后单击该框中的任意位置,而不会丢失文本焦点

有人知道这里发生了什么吗?拖动手柄做了什么来防止窃取焦点


谢谢

jQuery UI Dragable取消了它的
mousedown
事件。这就是为什么它不接收焦点,因此不会窃取其他元素的焦点。您可以在可拖动上下文之外使用以下示例

HTML:


是的!真管用!非常感谢。但在继续之前,我还是想了解一下这种情况中的一些奇怪的事情。如果不是返回false;在JSFIDLE中放置event.stopPropagation()无焦点链接获取焦点。您可能会认为stopPropagation()与return false具有相同的效果。此外,如果将mousedown替换为click,则return false和stopPropagation都不会防止焦点被盗。你知道那里发生了什么事吗?再次感谢您的帮助。@Steve No停止传播不会取消事件。它只是防止它传播到其他DOM元素。preventDefault()的作用与返回false相同。
<a href="#">Some link</a>
<a class="not-focusable" href="#">No focus</a>
$('.not-focusable').mousedown(function (event) {
    return false;
});