2010-08-12 39 views
11

Trong ứng dụng web của tôi, người dùng đôi khi có thể nhấp vào cùng một nút một số lần, bỏ qua các tin nhắn và mọi thứ, khiến cho </a> được chọn.Làm cách nào để ngăn văn bản được chọn?

Vậy làm thế nào tôi có thể ngăn chặn điều này sử dụng Javascript (jQuery)

+0

Nó có ngăn không cho chúng tiếp tục gửi tin nhắn trên tàu không? Nếu không, sau đó tôi sẽ khuyên bạn nên chống lại nó vì nó có lẽ cũng sẽ ngăn chặn khi họ muốn chọn văn bản. –

+0

Không có âm thanh với tôi như nó sẽ ảnh hưởng đến khả năng điều hướng của họ - chỉ vô tình chọn. Liên kết mà Marek đưa vào câu trả lời của anh ấy dưới đây chỉ cho phép tắt lựa chọn văn bản trên một số yếu tố nhất định. Có lẽ Ben sẽ chỉ vô hiệu hóa lựa chọn trên một thẻ đang giết người dùng của anh ấy. – sblom

Trả lời

2

Giải pháp này làm việc cho tôi: http://chris-barr.com/entry/disable_text_selection_with_jquery/

$(function(){ 
    $.extend($.fn.disableTextSelect = function() { 
     return this.each(function(){ 
      if($.browser.mozilla){//Firefox 
       $(this).css('MozUserSelect','none'); 
      }else if($.browser.msie){//IE 
       $(this).bind('selectstart',function(){return false;}); 
      }else{//Opera, etc. 
       $(this).mousedown(function(){return false;}); 
      } 
     }); 
    }); 
    $('.noSelect').disableTextSelect();//No text selection on elements with a class of 'noSelect' 
}); 
+0

Url đó dường như đã chuyển sang: http://chris-barr.com/index.php/entry/disable_text_selection_with_jquery/ – Dwayne

+0

Liên kết này hiện cũng bị hỏng. –

+0

Ví dụ trong liên kết không hoạt động với phiên bản mới nhất của Jquery. $ .browser không còn tồn tại nữa. –

29

Bạn không cần kịch bản cho điều này, đây là css:

-webkit-touch-callout: none; 
-webkit-user-select: none; 
-khtml-user-select: none; 
-moz-user-select: none; 
-ms-user-select: none; 
user-select: none; 
+2

Người hỏi có lẽ đã được quyết định trước rằng họ muốn sử dụng JS cho việc này, nhưng câu trả lời của bạn tốt hơn nhiều so với bất kỳ tập lệnh nào. +1 – mavrosxristoforos

+1

Hoạt động trong Chrome 25, nhưng không hoạt động với tôi trong IE10. Ctrl + A chọn tất cả văn bản trên trang. Nó ngừng văn bản được chọn nếu tôi nhấp đúp vào văn bản, nhưng nếu tôi kéo từ một khu vực không sử dụng CSS này vào khu vực đang sử dụng CSS này, nó vẫn làm nổi bật văn bản. –

Các vấn đề liên quan