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;    
    }
}; 

 

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