Làm cách nào để tạo thành phần, ví dụ: một div, có thể kéo bằng jQuery?Làm cách nào để tạo phần tử có thể kéo trong jQuery?
Trả lời
Đầu tiên tải jQuery UI:
<link type="text/css" href="css/themename/jquery-ui-1.7.1.custom.css" rel="Stylesheet" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.1.custom.min.js"></script>
Sau đó sử dụng jQuery UI draggable method:
<script type="text/javascript">
$(function() {
$("#b").draggable();
});
</script>
Bạn có thể làm chỉ với jquery, mà không jquery UI:
function handle_mousedown(e){
window.my_dragging = {};
my_dragging.pageX0 = e.pageX;
my_dragging.pageY0 = e.pageY;
my_dragging.elem = this;
my_dragging.offset0 = $(this).offset();
function handle_dragging(e){
var left = my_dragging.offset0.left + (e.pageX - my_dragging.pageX0);
var top = my_dragging.offset0.top + (e.pageY - my_dragging.pageY0);
$(my_dragging.elem)
.offset({top: top, left: left});
}
function handle_mouseup(e){
$('body')
.off('mousemove', handle_dragging)
.off('mouseup', handle_mouseup);
}
$('body')
.on('mouseup', handle_mouseup)
.on('mousemove', handle_dragging);
}
$('#b').mousedown(handle_mousedown);
Đây phải là câu trả lời được chấp nhận vì nó không yêu cầu plugin bổ sung. – BFWebAdmin
@BFWebAdmin không nhất thiết vì câu hỏi rõ ràng/cụ thể yêu cầu jquery .. – MJB
@MJB - Bằng plugin bổ sung, tôi có nghĩa là jQuery UI, mà phải được cài đặt riêng. – BFWebAdmin
Tôi chỉ đã nấu món này rất dễ dàng thay vì "kéo" trong toàn bộ giao diện người dùng jQuery.
Nó không chọn văn bản khi kéo bên dưới để nó thực sự hoạt động trong sản xuất không giống như mã khác ở đây.
này cũng làm việc với các yếu tố vị trí cố định khá độc đáo để bạn có thể "bến"
$.fn.draggable = function(){
var $this = this,
ns = 'draggable_'+(Math.random()+'').replace('.',''),
mm = 'mousemove.'+ns,
mu = 'mouseup.'+ns,
$w = $(window),
isFixed = ($this.css('position') === 'fixed'),
adjX = 0, adjY = 0;
$this.mousedown(function(ev){
var pos = $this.offset();
if (isFixed) {
adjX = $w.scrollLeft(); adjY = $w.scrollTop();
}
var ox = (ev.pageX - pos.left), oy = (ev.pageY - pos.top);
$this.data(ns,{ x : ox, y: oy });
$w.on(mm, function(ev){
ev.preventDefault();
ev.stopPropagation();
if (isFixed) {
adjX = $w.scrollLeft(); adjY = $w.scrollTop();
}
var offset = $this.data(ns);
$this.css({left: ev.pageX - adjX - offset.x, top: ev.pageY - adjY - offset.y});
});
$w.on(mu, function(){
$w.off(mm + ' ' + mu).removeData(ns);
});
});
return this;
};
Nhưng điều này giả định tuyệt đối hoặc định vị cố định được áp dụng cho phần tử rồi.
Sử dụng nó như vậy:
$('#something').draggable();
Tôi không khuyên bạn nên sử dụng FYI này. Nhìn vào MDN trên draggable và sử dụng cách trình duyệt bản địa. –
hoạt động tốt cho tôi! – foreyez
- 1. Giao diện người dùng JQuery Có thể kéo được - Cách biết phần tử có thể kéo được khởi tạo?
- 2. jQuery có thể kéo được + có thể tháo rời: cách chụp phần tử bị rơi vào phần tử bị rơi
- 3. Làm cách nào để tôi có thể bật 'có thể kéo' trên một phần tử có contentEditable?
- 4. jquery có thể kéo nhưng để lại bản sao trong đó phần tử gốc là
- 5. Làm cách nào để loại trừ một phần tử khỏi bị kéo trong danh sách có thể sắp xếp?
- 6. Tạo phần tử trong Jquery
- 7. Phần tử có thể kéo ẩn bên ngoài vùng chứa
- 8. jQueryUI: xóa đúng phần tử có thể kéo
- 9. Làm cách nào để tạo phần tử canvas trong Dart?
- 10. Làm cách nào để kiểm tra xem một phần tử có nằm trong một phần tử khác trong jQuery không?
- 11. Không thể kéo phần tử nút trong Firefox
- 12. Làm cách nào để tôi có thể tạo phần tử có thể kéo được, nhưng không phải là phần tử con của nó, bằng cách sử dụng giao diện người dùng jQuery?
- 13. Làm cách nào để tạo thành phần tử trong danh sách ul không thể xóa và không thể phân tách?
- 14. Jquery ui - có thể sắp xếp: kéo theo biểu tượng 'xử lý' trong phần tử có thể sắp xếp
- 15. jQuery - làm cách nào tôi có thể tìm thấy phần tử có id nhất định?
- 16. Cách phát hiện tạo phần tử mới trong jQuery?
- 17. Tiêu diệt JQuery có thể kéo
- 18. Lưới có thể kéo của jQuery
- 19. Làm cách nào để tạo nhiều phần tử HTML với jQuery?
- 20. Cách tạo các Phương thức Phần tử jQuery với NameSpace
- 21. Làm cách nào để kiểm tra xem một phần tử jQuery có nằm trong DOM không?
- 22. Có thể tạo dòng giữa các phần tử trong CSS3 không?
- 23. Có cách nào thanh lịch để chọn một phần tử trong JQuery nếu một phần tử không tồn tại?
- 24. BeautifulSoup: Làm cách nào để thay thế giá trị trong phần tử có thẻ phần tử?
- 25. Trong jQuery, làm thế nào tôi có thể chọn một phần tử ẩn?
- 26. Jquery Draggable - Làm cách nào để tạo một div có thể kéo mới khi đang di chuyển mà sau đó có thể được kéo?
- 27. Jquery-ui có thể kéo và động Jquery-ui có thể kéo được không?
- 28. Làm cách nào để tìm tất cả các phần tử có thể có trong danh sách?
- 29. jScrollPane cuộn trên phần tử kéo
- 30. 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ỏ
jQueryUI đã không có phụ trợ của nó cập nhật đúng trong nhiều năm, và bây giờ thường có vấn đề về chạy sạch cùng bên Phát triển ứng dụng khác. Lý do là phiên bản mới nhất của jqueryUI yêu cầu jquery v1.7.x, nơi jquery chính nó là trên v3.2.1 kể từ thời điểm bình luận này. – Nosajimiki