所以我知道这听起来像是重复的,但事实并非如此(或者,如果是,我能找到的所有答案都不能按照我需要的方式工作)。问题是这样的:
我正在使用 jQuery 在 HTML5 中编写,我需要制作一个网格,允许通过控制和移位进行多选。我有这个逻辑,但只要你按住 shift 单击它就会选择网格中的文本。我想阻止这种选择,但这是这个问题与我发现的其他问题之间的关键区别:我希望选择文本在所有其他时间都有效。
重申:我想使用 shift禁用文本选择,而不禁用指定元素的所有文本选择。有谁知道我该怎么做?
-- 编辑 --
以下(在网格的构造函数中)为我解决了这个问题。正如回答者建议的那样,我声明了一个不可选择的类。
this.gridBody = $("#userGrid");
var handleKeydown = function(e)
{
e = e || window.event;
var keyPressed = e.keyCode || e.which;
if (keyPressed == keys.shift) {
e.data.gridBody.addClass("unselectable");
}
};
var handleKeyup = function(e)
{
e = e || window.event;
var keyPressed = e.keyCode || e.which;
if (keyPressed == keys.shift) {
e.data.gridBody.removeClass("unselectable");
}
};
$(document).on('keydown', this, handleKeydown);
$(document).on('keyup', this, handleKeyup);