Что происходит, так это то, что DataTables устанавливает CSS-ширину таблицы, когда она инициализируется рассчитанным значением - это значение в пикселях, поэтому оно не будет изменяться при перетаскивании. Это происходит потому, что при изменении нумерации страниц таблица и столбцы (ширина столбцов также заданы) прыгают по ширине.
Что вы можете сделать, чтобы остановить это поведение в DataTables, для параметра autoWidth установлено значение false.
$('#example').dataTable( {
"autoWidth": false
} );
Это остановит DataTables, добавив вычисленную ширину в таблицу, оставив вашу (предположительно) ширину: 100% в одиночку и позволив изменить ее размер. Добавление относительной ширины к столбцам также поможет остановить подпрыгивание столбцов.
Еще одна опция, встроенная в DataTables, - установить опцию sScrollX, чтобы включить прокрутку, так как DataTables установит для таблицы 100% ширину контейнера прокрутки. Но вам может не понадобиться прокрутка.
Префектное решение было бы, если бы я мог получить ширину таблицы CSS (при условии, что она применяется - то есть 100%), но без анализа таблиц стилей я не вижу способа сделать это (то есть, в основном, я хочу $ (). css ('ширина'), чтобы вернуть значение из таблицы стилей, а не значение, вычисленное в пикселях).