bản sửa lỗi toàn cầu nhanh chóng 2 ¢ của tôi:
(function () {
$('.table-responsive').on('shown.bs.dropdown', function (e) {
var $table = $(this),
$menu = $(e.target).find('.dropdown-menu'),
tableOffsetHeight = $table.offset().top + $table.height(),
menuOffsetHeight = $menu.offset().top + $menu.outerHeight(true);
if (menuOffsetHeight > tableOffsetHeight)
$table.css("padding-bottom", menuOffsetHeight - tableOffsetHeight);
});
$('.table-responsive').on('hide.bs.dropdown', function () {
$(this).css("padding-bottom", 0);
})
})();
Giải thích: Khi trình đơn thả xuống bên trong '.table-responsive' được hiển thị, nó sẽ tính toán chiều cao của bảng và mở rộng nó (có đệm) để phù hợp với chiều cao cần thiết để hiển thị menu. Thực đơn có thể có kích thước bất kỳ.
Trong trường hợp của tôi, đây không phải là bảng có lớp '.table-responsive', nó là một div bao bọc:
<div class="table-responsive" style="overflow:auto;">
<table class="table table-hover table-bordered table-condensed server-sort">
Vì vậy, $ table var trong script thực sự là một div! (chỉ để rõ ràng ... hay không) :)
Lưu ý: Tôi bọc nó trong một hàm để IDE của tôi có thể thu gọn hàm;) nhưng không bắt buộc!