2015-08-23 13 views
6

Tôi đang theo dõi thông qua jquery ui docs để làm cho các div có thể kéo và sắp xếp được. Và nó hoạt động để kéo và sắp xếp. Nhưng khi tôi đưa ra một div từ draggable để sắp xếp, chiều rộng của những thay đổi có thể kéo và không giữ lại chiều rộng của nó được cho là.jquery ui khả năng kéo có thể thay đổi chiều rộng tự động

Đây là demo

js:

$(function() { 
    $('#grid-main_content').sortable({ 
     revert:true 
    }); 

    $('#block-list .block').draggable({ 
     connectToSortable: '#grid-main_content', 
     helper: 'clone', 
     revert:'invalid' 
    }); 
}) 

Và nếu tôi kiểm tra các yếu tố mà tôi kéo đến sắp xếp được, tôi có thể thấy rằng một phong cách nội tuyến được trao cho các khối kéo có chiều rộng (bởi jquery).

Làm cách nào để duy trì kiểu mà khối đã có? Cảm ơn bạn.

+0

Vì vậy, những gì bạn cần, giữ độ rộng bình đẳng cho cả hai – Vijay

+0

@Vijay tôi cần những khối mà tôi kéo đến phân loại để có chiều rộng cùng kích thước của các khối khác trong '# grid-main_container'. – Kakar

+0

Bạn có một tệp css khác. – Vijay

Trả lời

6

Bạn có thể sử dụng draggables' start event, để duy trì phong cách cụ thể của helper

$('#block-list .block').draggable({ 
    connectToSortable: '#grid-main_content', 
    helper : 'clone', 
    revert : 'invalid', 
    start : function(event, ui){ 
     $(ui.helper).addClass("ui-helper"); 
    } 
}); 

CSS:

.ui-helper { 
    width: 100% !important; 
} 

Demo

+2

Có. Nó hoạt động. Nhưng nó chỉ bao phủ toàn bộ chiều rộng của trình duyệt khi tôi kéo nó. Tuy nhiên nó giữ lại chiều rộng bên trong '# grid-main_container' nhưng có thể có chiều rộng của khối kéo được để duy trì ngay cả khi nó được kéo? Giống như những lời bình luận của bạn với jquery ui 1.10.4. – Kakar

+0

Bạn có thể sử dụng '.ui-draggable-dragging' trong giao diện người dùng jQuery mới nhất, loại bỏ nhu cầu JavaScript tùy chỉnh. – Dunc

0

tôi chỉ cần tạo một Codepen demo

Bất kỳ cách nào, hãy xem điều này và sao chép các mã nếu nó có vẻ hoạt động.

nếu bạn cần phần dưới của div trở lại kích thước ban đầu của nó, hãy thay đổi

#grid-main_content { 
width:80%;  
+0

Bạn đang sử dụng cùng một mã như @Artur – Kakar

+0

Có, tôi cũng đã thêm mã này + chiều rộng, nhưng chiều rộng không rõ ràng trong mã Artur. – Vijay

2

này đã làm việc cho tôi. Chỉ cần đặt nó vào độ rộng của các phần tử kéo

$('.selector').draggable({ 
    helper: 'clone', 
    start: function(event, ui){ 
     $(ui.helper).css('width', `${ $(event.target).width() }px`); 
    } 
}) 

như vậy bạn không cần phải thêm CSS

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