2015-05-26 4 views
7

Я выполнил код @ koala_dev в this post, чтобы попытаться заблокировать первый столбец. Моя таблица прокручивается горизонтально. Код, к сожалению, не влияет на мою таблицу. Мне было интересно, может ли кто-нибудь дать мне несколько указаний на то, что я сделал неправильно, поскольку я новичок в программировании.Исправить первый столбец загрузочного стола

Это мой стол: http://jsfiddle.net/mademoiselletse/bypbqboe/59/

Это код, я вставил в JS (строка 121-133):

$(function() { 
    var $tableClass = $('.table'); 
    // Make a clone of our table 
    var $fixedColumn = $tableClass.clone().insertBefore($tableClass).addClass('fixed-column'); 

    // Remove everything except for first column 
    $fixedColumn.find('th:not(:first-child),td:not(:first-child)').remove(); 

    // Match the height of the rows to that of the original table's 
    $fixedColumn.find('tr').each(function(i, elem) { 
     $(this).height($tableClass.find('tr:eq(' + i + ')').height()); 
    }); 
}); 

Это свойство CSS (строка 36-47) У меня есть вставлено:

.table-responsive > .fixed-column { 
    position: absolute; 
    display: inline-block; 
    width: auto; 
    border-right: 1px solid #ddd; 
} 

@media(min-width:768px) { 
    .table-responsive>.fixed-column { 
     display: none; 
    } 
} 

Единственное, что я отклонился от demo code было то, что я определил $('.table'), как $tableClass вместо $table, так как я ранее определял var $table как $('#table'). Ваша помощь будет очень признательна!

+0

В вашем демо есть это line var '$ tableClass = $ ('. table');' ie вы пытаетесь получить свой объект таблицы со ссылкой на класс, но вы указали свою 'table' с' id' как 'table', а не' classN ame' как 'table' –

+0

Спасибо за указание! Вместо этого я ссылался на таблицу по ID, но я получил это: http://jsfiddle.net/mademoiselletse/bypbqboe/62/ Не могли бы вы дать мне некоторый намек на то, почему это так? – Vic

+0

ваш код довольно запутанный !! Почему вы клонируете «таблицу» и почему удаляете все «данные таблицы» и «head head», кроме первого? –

ответ

27

Ok .. Удалить все ваши js код, и вы можете сделать это с помощью некоторых хитростей CSS, как показано ниже:

DEMO

CSS

.table > thead:first-child > tr:first-child > th:first-child { 
    position: absolute; 
    display: inline-block; 
    background-color: red; 
    height: 100%; 
} 

.table > tbody > tr > td:first-child { 
    position: absolute; 
    display: inline-block; 
    background-color: red; 
    height: 100%; 
} 

.table > thead:first-child > tr:first-child > th:nth-child(2) { 
    padding-left: 40px; 
} 

.table > tbody > tr > td:nth-child(2) { 
    padding-left: 50px !important; 
} 
+1

Это потрясающе! Большое спасибо! – Vic

+0

В любое время !! Happy Coding .. :) –

+1

Это превосходное решение для чистого CSS, которое превосходит этот беспорядок JS и CSS из другого упоминаемого сообщения. – wndxlori

1

$('#table') средство поиска по идентификатору table.

$('.table') означает, что найти элементы по категории table.

Это селектор CSS, который вы использовали в css.

В вашем случае у вашего стола был идентификатор table, поэтому вы можете выбрать эту таблицу, используя $('#table').

И у вас нет каких-либо элементов html, используя класс table, поэтому вы ничего не получите при выборе $('.table').

+0

Спасибо за указание, что у меня нет класса 'table'. Я понимаю, что я помещаю 'table' внутри' data-class'. Я следовал вашим советам и ссылался на таблицу по ее идентификатору, но я получил это: http://jsfiddle.net/mademoiselletse/bypbqboe/62/ Являются ли мои коды противоречивыми? – Vic

 Смежные вопросы

  • Нет связанных вопросов^_^