এখানে নির্বাচিত উত্তরটি সত্যিই দুর্দান্ত সমাধান, তবে এটির মধ্যে একটি গুরুতর বাগ রয়েছে যা মূল জেএস ফ্রিডল ( http://jsfiddle.net/bgrins/tzYbU/ ) এ দৃশ্যমান : দীর্ঘতম সারিটি টেনে আনার চেষ্টা করুন ( Godশ্বর আশীর্বাদ করুন মিঃ । গোলাপ জল ) এবং কক্ষের বাকী অংশের দৈর্ঘ্য ধসে পড়ে।
এর অর্থ হ'ল টানা ঘরের উপরের সেল প্রস্থগুলি ঠিক করা যথেষ্ট নয় - আপনাকে টেবিলে প্রস্থও ঠিক করতে হবে।
$(function () {
$('td, th', '#sortFixed').each(function () {
var cell = $(this);
cell.width(cell.width());
});
$('#sortFixed tbody').sortable().disableSelection();
});
জেএস ফিডল: http://jsfiddle.net/rp4fV/3/
এটি আপনাকে প্রথম কলামটি টেনে আনার পরে টেবিলের ধসে পড়ার সমস্যাটি সমাধান করে তবে একটি নতুন প্রবর্তন করে: আপনি যদি টেবিলের সামগ্রী পরিবর্তন করেন তবে সেলের মাপগুলি এখন ঠিক হয়ে গেছে।
বিষয়বস্তু যুক্ত বা পরিবর্তন করার সময় এগুলি কাজ করার জন্য আপনাকে প্রস্থের সেটটি সাফ করতে হবে:
$('td, th', '#sortFixed').each(function () {
var cell = $(this);
cell.css('width','');
});
তারপরে আপনার সামগ্রী যুক্ত করুন, তারপরে আবার প্রস্থগুলি ঠিক করুন।
এটি এখনও সম্পূর্ণ সমাধান নয়, যেমন (বিশেষত একটি টেবিল সহ) আপনার একটি ড্রপ প্লেসোল্ডার দরকার। তার জন্য আমাদের শুরুতে একটি ফাংশন যুক্ত করতে হবে যা স্থানধারককে তৈরি করে:
$('#sortFixed tbody').sortable({
items: '> tr',
forcePlaceholderSize: true,
placeholder:'must-have-class',
start: function (event, ui) {
// Build a placeholder cell that spans all the cells in the row
var cellCount = 0;
$('td, th', ui.helper).each(function () {
// For each TD or TH try and get it's colspan attribute, and add that or 1 to the total
var colspan = 1;
var colspanAttr = $(this).attr('colspan');
if (colspanAttr > 1) {
colspan = colspanAttr;
}
cellCount += colspan;
});
// Add the placeholder UI - note that this is the item's content, so TD rather than TR
ui.placeholder.html('<td colspan="' + cellCount + '"> </td>');
}
}).disableSelection();
জেএস ফিডল: http://jsfiddle.net/rp4fV/4/