当用户使用 jQuery 双击任意位置时取消选择

发布于 2024-11-09 03:41:44 字数 331 浏览 0 评论 0原文

如您所知,当用户双击某处时,资源管理器会尝试选择最近的对象(例如文本、表格行等),如下图所示: 在此处输入图像描述

用户可以:

  • 一键选择任何文本

用户无法

  • 通过双击选择任何对象 (换句话说,当用户双击列表时,jquery 应该取消选择选定区域

那么我该怎么做呢?希望它是清楚的。

注意:我使用双击操作来进入该项目。

As you know, when a user double-click somewhere, Explorer tries to select the nearest objects (such as text, table-row etc.) like the picture below:
enter image description here

User can:

  • select any text with one-click

User can't

  • select any object with double-click (in other words, when the user double-clicks on the list, jquery should deselect selected area)

So how can I do this? Hope it's clear.

Note: I use double-click operation to enter the item.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

两仪 2024-11-16 03:41:44

我忘记了,这是在事件中无法取消默认操作的边缘情况之一。在这种情况下,您可能希望对 Firefox 和 Chrome 使用 CSS 方法:

-moz-user-select: none;
-webkit-user-select: none;

对于 Opera/IE:

$("#mytable td").prop("unselectable", "on");  // jQuery 1.6+
$("#mytable td").attr("unselectable", "on");  // jQuery 1.5-

如果您希望用户仍然能够拖动选择,您可能需要使用如下解决方案:

$("#mytable td").bind("dblclick", function () {
    var $this = $(this);
    $this.prop("unselectable", "on").css({ 
        "moz-user-select" : "none", 
        "-webkit-user-select" : "none"
    });

    window.setTimeout(function () {
        var $this = $(this);
        $this.prop("unselectable", "").css({ 
            "moz-user-select" : "", 
            "-webkit-user-select" : ""
        });
    }, 0);
});

I forgot, this is one of those edge cases where the default action can't be cancelled in the event. In that case, you might want to use the CSS approach for Firefox and Chrome:

-moz-user-select: none;
-webkit-user-select: none;

And for Opera/IE:

$("#mytable td").prop("unselectable", "on");  // jQuery 1.6+
$("#mytable td").attr("unselectable", "on");  // jQuery 1.5-

If you want the user to still be able to drag-select, you might want to work in a solution like this:

$("#mytable td").bind("dblclick", function () {
    var $this = $(this);
    $this.prop("unselectable", "on").css({ 
        "moz-user-select" : "none", 
        "-webkit-user-select" : "none"
    });

    window.setTimeout(function () {
        var $this = $(this);
        $this.prop("unselectable", "").css({ 
            "moz-user-select" : "", 
            "-webkit-user-select" : ""
        });
    }, 0);
});
女皇必胜 2024-11-16 03:41:44

选择一些随机元素,

$("#randsmallelement").focus();

如果这不起作用尝试添加

$("#randsmallelement).select();

pick some random element and

$("#randsmallelement").focus();

if that doesn't work try adding

$("#randsmallelement).select();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文