当前位置:  开发笔记 > 编程语言 > 正文

防止文本表的突出显示

如何解决《防止文本表的突出显示》经验,为你挑选了3个好方法。

我有一张桌子,我允许用户"选择"多行.这都是使用jQuery事件和一些CSS来处理,以直观地指示行被"选中".当用户按下shift时,可以选择多行.有时这会导致文本突出显示.反正有没有阻止这个?



1> Eli Grey..:

有一个CSS3属性.

#yourTable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}


太糟糕的Internet Explorer并不关心.测试在6-8.

2> Cleiton..:

如果您希望在用户可以选择或不选择部分网站时进行控制,则可以使用此小jQuery插件.

jQuery.fn.extend({ 
        disableSelection : function() { 
                return this.each(function() { 
                        this.onselectstart = function() { return false; }; 
                        this.unselectable = "on"; 
                        jQuery(this).css('user-select', 'none'); 
                        jQuery(this).css('-o-user-select', 'none'); 
                        jQuery(this).css('-moz-user-select', 'none'); 
                        jQuery(this).css('-khtml-user-select', 'none'); 
                        jQuery(this).css('-webkit-user-select', 'none'); 
                }); 
        } 
}); 

并将其用作:

// disable selection on #theDiv object
$('#theDiv').disableSelection(); 

否则,您可以在css文件中使用这些css属性:

#theDiv
 {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}



3> Steven..:

关于Cleiton上面答案的一个注释 - 代码示例似乎运行良好,但为了成为jQuery世界中的好公民,你应该在函数末尾返回jQuery对象,以便它可以链接 - 一个简单的单行添加修复了:

jQuery.fn.extend({
    disableSelection : function() {
            this.each(function() {
                    this.onselectstart = function() { return false; };
                    this.unselectable = "on";
                    jQuery(this).css('-moz-user-select', 'none');
            });
            return this;
    }
});

干杯,希望这是有帮助的.


他这样做是为了"返回this.each(function(){..."
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有