我在网页中使用了jQuery和tablesorter插件。我的目标是使用元数据内联插入功能将tablesorter头禁用解析器添加到其类为空的每个头中。我概述了三个函数,第一个是将禁用解析器添加到每个头的类,使用空类(“”),第二个将对没有空白类的头文件执行类切换操作,第三个一旦设置了所有标题,它将调用实际的tablesorter。
$(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>
答案 0 :(得分:4)
你的问题在于这一行:
if ($(this).hasClass('')){$(this).addClass('{sorter: 'false'}'); }
{sorter:'false'}
中的引号正在关闭外部引号。试试这个:
if ($(this).hasClass('')){$(this).addClass("{sorter: 'false'}"); }
除此之外,添加一个具有该值的类对我来说看起来很奇怪但是如果你确定tableorter不知道如何对列进行排序那么这应该有效。你也可以shorten the selector:
$("th[class='']").addClass("{sorter: 'false'}");