あなたはCSSを使ってトリックをすることができます:http://jsbin.com/uxewej/8/
html{
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
}
html
ユーザーに何かを選択させる必要がある場合は、CSSセレクターを使用しないでください。
アップデート
FF、Chrome、IE9でテスト済み
CSS宣言を補完する一般的なソリューション
function toggleEnableSelectStart(enable) {
document.onmousedown = function (e) { return enable; };
document.onselectstart = function (e) { return enable; };
}
jQuery(document).ready(function () {
//Disable default text selection behavior
toggleEnableSelectStart(false);
//Let inputs text selection possible
jQuery("input[type=text]").focusin(function () { toggleEnableSelectStart(true); });
jQuery("input[type=text]").mouseover(function () { toggleEnableSelectStart(true); });
jQuery("input[type=text]").focusout(function () { toggleEnableSelectStart(false); });
jQuery("input[type=text]").mouseout(function () { toggleEnableSelectStart(false); });
});
作者のことで申し訳ありませんが、ある日どこで見つけたのかは覚えていませんが、賢いです!
アップデート2
ボタンでのみクリック選択動作を回避するには、CSSのトリックを削除して使用します
http://jsbin.com/uxewej/11/edit
function toggleEnableSelectStart(enable) {
document.onmousedown = function (e) { return enable; };
document.onselectstart = function (e) { return enable; };
}
jQuery(document).ready(function () {
//Disable default text selection behavior
toggleEnableSelectStart(false);
//Let inputs text selection possible
jQuery(".countButton").focusin(function () { toggleEnableSelectStart(false); });
jQuery(".countButton").mouseover(function () { toggleEnableSelectStart(false); });
jQuery(".countButton").focusout(function () { toggleEnableSelectStart(true); });
jQuery(".countButton").mouseout(function () { toggleEnableSelectStart(true); });
});
アップデート3
選択した要素の選択を無効にする場合は、このリンクをたどってください
(function($){
$.fn.disableSelection = function() {
return this
.attr('unselectable', 'on')
.css('user-select', 'none')
.on('selectstart', false);
};
})(jQuery);