按住Ctrl键单击表格元素时删除默认的蓝色边框

时间:2019-01-30 13:11:10

标签: javascript html css

这个问题曾经被问过,但是没有一个答案对我有用。

我尝试过的事情:

event.preventDefault()-什么也不做。

从CSS中删除用户选择-不可行,用户应该仍然可以选择文本。

在按住ctrl键的同时单击并从事件中删除选择-延迟,仅在将鼠标悬停后才有效

以上示例:

document.body.querySelector('tbody').addEventListener('click', e => {
    e.preventDefault();
  if (e.target.tagName === 'TD') {
    if(e.ctrlKey){
        //Select row logic here
        if (document.selection){
        document.selection.empty();
      }else if (window.getSelection){
        window.getSelection().removeAllRanges();
      }
    }
  }
})

http://jsfiddle.net/ppgab/zm1dgt3s/5/

当用户单击“表格”单元格之间的空格,然后选择所有单元格时,这会变得更加烦人。

是否有解决此问题的简便方法?请不要使用jQuery

2 个答案:

答案 0 :(得分:0)

我只是使用了错误的事件,mousedown是正确的事件:

table.addEventListener('mousedown', e => {
    if(e.ctrlKey){
        e.preventDefault();
    }
})

答案 1 :(得分:0)

您可以使用CSS尝试吗?

div#myDiv:active{
    text-decoration: none;
}