Добавление класса ко всем заголовкам таблицы - PullRequest
1 голос
/ 07 мая 2009

Я использую jQuery и плагин TableSorter на своей веб-странице. Моя цель - добавить синтаксический анализатор отключения заголовка tableorter к каждому заголовку, класс которого пуст, используя встроенную функцию вставки метаданных. У меня есть три функции: первая - это класс, который добавляет анализатор отключения к каждому заголовку с пустым классом (""), вторая будет выполнять операции переключения классов над заголовками, для которых нет пустых классов, и третья вызовет фактический сортировщик таблиц, как только будут установлены все заголовки.

$(function(){
    //Code is supposed to add the disable parser to each header with a blank class
    $("th").each(function(){
        if ($(this).hasClass('')){$(this).addClass('{sorter: 'false'}');
    });
});


$(function() {
    //Code manipulates headers with non-blank classes
}); 

$(function() {
    //Call tablesorter on all tables once their headers are set.
    $("table").tablesorter({}); 
});

Пока что вторая и третья функции работают, как и ожидалось, хотя в конечном итоге я планирую расширить вторую функцию еще дальше, как только я смогу решить проблемы с первой функцией. Это приводит меня к моей проблеме, а именно к тому, что первая функция, добавляющая синтаксический анализатор, кажется, вообще не добавляет класс, и, более того, поскольку она не работает должным образом, она препятствует работе второй и третьей. Эти функции будут работать, если я уберу первую функцию; Я не уверен, что у меня неправильный синтаксис или я могу даже динамически добавить парсер таким способом. Ниже приведен пример заголовков из HTML:

<th class=""><a rel = "Header" href="#" title="Sort title in decending order" class="">Title</a></th>
<th class=""><a rel = "Header" href="#" title="Sort instructor in descending order" class="">Instructor</a></th>
<th class="{sorter: 'usLongDate'}"><a rel = "Header" href="#" title="Sort column in decending order" class="">Date</a></th>
<th class="">Start/End</th>
<th class=""><a rel = "Header" href="#" title="Sort column in decending order" class="">Seats Available</a></th>
<th class=""><a rel = "Header" href="#" title="Sort column in decending order" class="">Enrolled</a></th>
<th class=""><a rel = "Header" href="#" title="Sort column in decending order" class="">Pre-Requisites</a></th>
<th class="">Workshop Actions</th>

1 Ответ

4 голосов
/ 07 мая 2009

Ваша проблема с этой строкой:

if ($(this).hasClass('')){$(this).addClass('{sorter: 'false'}'); }

Ваши кавычки внутри {sorter:'false'} закрывают внешние кавычки. Попробуйте это:

if ($(this).hasClass('')){$(this).addClass("{sorter: 'false'}"); }

Кроме того, добавление класса с таким значением выглядит для меня очень странно, но если вы уверены, что именно так Tablester знает, как не сортировать столбец, тогда это должно работать. Вы также можете сократить селектор :

$("th[class='']").addClass("{sorter: 'false'}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...