2
(function($){
$.fn.ctrl = function(key, callback) {
if(typeof key != 'object') key = [key];
callback = callback || function(){ return false; }
return $(this).keydown(function(e) {
var ret = true;
$.each(key,function(i,k){
if(e.keyCode == k.toUpperCase().charCodeAt(0) && e.ctrlKey) {
ret = callback(e);
}
});
return ret;
});
};
$.fn.disableSelection = function() {
$(window).ctrl(['a','s','c']);
return this.each(function() {
$(this).attr('unselectable', 'on')
.css({'-moz-user-select':'none',
'-o-user-select':'none',
'-khtml-user-select':'none',
'-webkit-user-select':'none',
'-ms-user-select':'none',
'user-select':'none'})
.each(function() {
$(this).attr('unselectable','on')
.bind('selectstart',function(){ return false; });
});
});
};
})(jQuery);
$(document).ready(function(){
$("textarea").on('focus',function(){
$(this).disableSelection();
});
});
小提琴:http://jsfiddle.net/EBhya/8/
背後的想法是,用戶可以輸入,但不能突出顯示文本。仍然可以使用箭頭鍵進行更改等。
在Firefox和IE上,此功能可根據需要運行100%。
在Chrome瀏覽器上,或許在Safari瀏覽器中,當您將注意力集中在輸入上時,輸入被禁用,甚至無法輸入。
我已經嘗試了一切,從等待到應用禁用的選擇,試圖監視鼠標點擊和選擇。無論如何,如果任何人都可以提供幫助,我將不勝感激。
也許完全不同的方法將做到這一點:http://stackoverflow.com/a/4656495/825789 – bfavaretto 2013-03-20 20:32:11
不管它是你正在嘗試做的,可能會在平板電腦/手機上導致一些問題 – Huangism 2013-03-20 20:36:54
@bfavaretto這可以很好地工作。發佈它作爲答案,我會接受它。 – 2013-03-20 20:38:33