การแก้ไขปัญหาระดับโลกอย่างรวดเร็ว 2 ¢ของฉัน:
(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);
})
})();
Explications: เมื่อเมนูแบบเลื่อนลงภายใน '.table-responsive' ปรากฏขึ้นระบบจะคำนวณความสูงของตารางและขยาย (พร้อมช่องว่างภายใน) เพื่อให้ตรงกับความสูงที่ต้องการเพื่อแสดงเมนู เมนูสามารถมีขนาดใดก็ได้
ในกรณีของฉันนี่ไม่ใช่ตารางที่มีคลาส ".table-responsive" แต่เป็น div การตัด:
<div class="table-responsive" style="overflow:auto;">
<table class="table table-hover table-bordered table-condensed server-sort">
ดังนั้น $ table var ในสคริปต์จึงเป็น div! (เพื่อความชัดเจน ... หรือไม่) :)
หมายเหตุ: ฉันรวมไว้ในฟังก์ชันเพื่อให้ IDE ของฉันสามารถยุบฟังก์ชัน;) แต่ไม่บังคับ!