JS禁用页面某区域不可选中文字、及修复导致行内编辑出现某单元格不可输入的问题

最近做了一个双击row的响应功能,不希望在双击table的row时出现文字复制的效果,影响体验,所以找到了禁用页面复制的js代码

document.onselectstart = function(){return false;}; //取消文字选择功能

但是,我的编辑表格时insert一条虚拟row实现的,虚拟row行内编辑的某个单元格会在使用document全局禁用时不可输入,所以,不针对全局禁用,仅针对table区域禁用

$table.bind('selectstart', function(ev) {
    return false;
}; 

然而,问题还是存在,所以,看了它的源码,大概就是在点击row时,才会触发这个函数,然后返回值为false即不可复制,那么针对每列改成黑名单的方式解决,把需要禁用的列cellIndex作为判断条件,限制住即可,最终代码:

$table.bind('selectstart', function(ev) {
    switch (ev.target.cellIndex) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
        case 9:
        case 10:
            return false;
        default:
            return true;    
    }
}; 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章