Tôi có một div trên trang HTML và bất cứ khi nào tôi nhấn chuột và di chuyển nó, nó sẽ cho thấy con trỏ "không thể thả" giống như nó chọn thứ gì đó. Có cách nào để vô hiệu hóa lựa chọn không? Tôi đã thử CSS người dùng chọn không có thành công.Ngăn chặn lựa chọn trong HTML
Trả lời
Các biến thể độc quyền của user-select
sẽ làm việc trong hầu hết các trình duyệt hiện đại:
*.unselectable {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
/*
Introduced in IE 10.
See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
*/
-ms-user-select: none;
user-select: none;
}
Đối với IE < 10 và Opera, bạn sẽ cần phải sử dụng unselectable
thuộc tính của phần tử mà bạn muốn được unselectable. Bạn có thể thiết lập này sử dụng một thuộc tính trong HTML:
<div id="foo" unselectable="on" class="unselectable">...</div>
Đáng buồn là khách sạn này không được thừa kế, có nghĩa là bạn cần phải đặt một thuộc tính trong thẻ bắt đầu của mọi phần tử bên trong <div>
. Nếu đây là vấn đề, thay vào đó bạn có thể sử dụng JavaScript để làm điều này một cách đệ quy cho con cháu của một phần tử:
function makeUnselectable(node) {
if (node.nodeType == 1) {
node.setAttribute("unselectable", "on");
}
var child = node.firstChild;
while (child) {
makeUnselectable(child);
child = child.nextSibling;
}
}
makeUnselectable(document.getElementById("foo"));
Bạn có một số hình ảnh minh bạch mà bạn chọn? Thông thường, biểu tượng "không thể thả" xuất hiện khi bạn kéo một hình ảnh. Nếu không, nó thường chọn văn bản khi bạn kéo. Nếu vậy bạn có thể phải đặt hình ảnh đằng sau tất cả mọi thứ bằng cách sử dụng z-index.
Tôi sử dụng cancelBubble=true
và stopPropagation()
trong trình đơn thả xuống và di chuyển.
Điều gì khiến tôi giật mình là bạn cần nó trong _both_ chuột xuống và di chuyển các trình xử lý, không chỉ di chuyển! –
Đó là dường như CSS người dùng chọn không ngăn chặn hình ảnh kéo và thả ... vì vậy ..
HTML:
<img src="ico.png" width="20" height="20" alt="" unselectable="on" /> Blabla bla blabla
CSS:
* {
user-select: none;
-khtml-user-select: none;
-o-user-select: none;
-moz-user-select: -moz-none;
-webkit-user-select: none;
}
::selection { background: transparent;color:inherit; }
::-moz-selection { background: transparent;color:inherit; }
JS:
$(function(){
$('*:[unselectable=on]').mousedown(function(event) {
event.preventDefault();
return false;
});
});
Chúng tôi có thể sử dụng mã này mặc định cho tất cả hình ảnh không? –
Bạn có thể sử dụng bộ chọn "img" nhưng phải cẩn thận với "event.preventDefault();" vì không có sự kiện nào khác được liên kết với "mousedown" sẽ hoạt động trên chúng trong trang của bạn ... – molokoloco
event.preventDefault()
dường như làm mẹo (được thử nghiệm trong IE7-9 và Chrome):
jQuery('#slider').on('mousedown', function (e) {
var handler, doc = jQuery(document);
e.preventDefault();
doc.on('mousemove', handler = function (e) {
e.preventDefault();
// refresh your screen here
});
doc.one('mouseup', function (e) {
doc.off('mousemove', handler);
});
});
Cảm ơn bạn vì điều này, đã tìm kiếm một thời điểm thích hợp để chặn danh sách tôi chọn mà tôi đã chặn khi nhấp, vì các giá trị bị vô hiệu hóa không bài ..... haha – thekevshow
- 1. cách ngăn chặn lựa chọn văn bản khi kéo chuột trong Firefox?
- 2. Ngăn chặn menu chọn mở
- 3. Lựa chọn phiên bản HTML
- 4. JCrop: Ngăn không cho lựa chọn?
- 5. Ngăn việc lựa chọn hàng nhiều trong WPF DataGrid
- 6. Ngăn chặn django quản trị thoát html
- 7. Ngăn chặn HTML Mã nguồn Ăn cắp
- 8. Ngăn chặn gọn gàng thêm thẻ html
- 9. Winforms - Cách ngăn lựa chọn mục Listbox
- 10. Làm cách nào để ngăn chặn lựa chọn văn bản/phần tử khi kéo con trỏ
- 11. Làm cách nào để ngăn chặn chân trang ListView trở thành lựa chọn?
- 12. Nhận lựa chọn trang bao gồm HTML?
- 13. cặp Lựa chọn các yếu tố html trong jquery
- 14. HTML Hộp kiểm trong danh sách lựa chọn
- 15. HTML xác định lựa chọn những gì lựa chọn được kích hoạt
- 16. Ngăn việc lựa chọn từ phím Shift + Click
- 17. Nhiều quy tắc cho :: lựa chọn và :: - MOZ lựa chọn (? Và sử dụng chọn)
- 18. Ngăn chặn chọn ngẫu nhiên/kéo nổi bật
- 19. HTML CSS Cách ngăn chặn ô bảng mở rộng
- 20. Lựa chọn thiết kế: WCF hoặc Ngăn xếp dịch vụ?
- 21. UITableViewCell: Làm thế nào để ngăn chặn nền lựa chọn màu xanh w/o borking isSelected tài sản?
- 22. Làm thế nào để ngăn chặn JList từ việc lựa chọn bên ngoài ranh giới di động?
- 23. Việc tạo ra một chỉ mục nonclustered trên một bảng SQL Server 2005 ngăn chặn lựa chọn?
- 24. ngăn chặn listview để mất mục đã chọn
- 25. Lựa chọn thuộc tính giá trị với html Agility Pack
- 26. ngăn chặn csrf trong php
- 27. Cách ngăn chặn tự chọn (đệ quy) cho các trường FK/MTM trong Quản trị Django
- 28. Ngăn chặn DOM XSS
- 29. Lựa chọn Django chọn
- 30. QT - đa lựa chọn
Ah, có vẻ như Firefox 3.6 chỉ hoạt động với tiền tố -moz-. – Tower
không được chọn nhưng vẫn được sao chép vào khay nhớ tạm (theo thông số MDC tại http://goo.gl/5P8uH) – ithkuil
@ithkuil: Thú vị. Có vẻ như '-moz-none' là con đường để đi. Tôi sẽ sửa đổi câu trả lời của tôi. –