我试图在jquery ui对话框中的动态创建的表上使用tablesorter,但是tablesorter似乎不起作用。这意味着结果是一个简单的html表,没有像tablesorter" zebra"那样的排序或布局。 我的代码:
var content = '<table id="searchtable" class="tablesorter"><thead><tr><th>Date</th><th>Subject</th></th></tr>';
content += '</thead><tbody><tr><td>04.10.2016 09:00</td><td>some Text</td></tr>';
content += '<tr><td>04.10.2016 12:00</td><td>another Text</td></tr></tbody></table>';
$("#searchButton").button().click(function() {
$('#searchdialog').html(content).dialog({
width: "auto",
open: function() {
$('#searchtable').tablesorter();
}
});
});
&#13;
.tablesorter {
width: auto;
cursor: pointer;
widgets: ['zebra'];
}
&#13;
<link href="https://mottie.github.com/tablesorter/css/theme.blue.css" rel="stylesheet"/>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script src="http://mottie.github.com/tablesorter/js/jquery.tablesorter.js"></script>
<div id='searchButton'>Search</div>
<div id="searchdialog" title="Search Dialog"></div>
&#13;
这是我在stackoverflow上的第一个问题,我对插入代码等不太熟悉,我从jsfiddle(https://jsfiddle.net/JMKivi/kumrgyaw/12/)复制/粘贴了代码。所以如果使用stackoverflow有错误或者重要的东西似乎缺失,请告诉我。
修改:我现在已将<button id='searchButton'>Search</button>
更改为<div id='searchButton'>Search</div>
。它仍然在这里工作,但不是在jsfiddle和我的生产环境中。无论如何,谢谢你的帮助。
答案 0 :(得分:0)
我收到此错误:
Error: {
"message": "TypeError: $(...).button is not a function",
"filename": "http://stacksnippets.net/js",
"lineno": 24,
"colno": 1
}
这意味着您必须将选择器修改为:(删除按钮())
$("#searchButton").click(function()
var content = '<table id="searchtable" class="tablesorter"><thead><tr><th>Date</th><th>Subject</th></th></tr>';
content += '</thead><tbody><tr><td>04.10.2016 09:00</td><td>some Text</td></tr><tr><td>01.10.2016 09:00</td><td>some Text</td></tr>';
content += '<tr><td>04.10.2016 12:00</td><td>another Text</td></tr></tbody></table>';
$("#searchButton").click(function() {
$('#searchdialog').html(content).dialog({
width: "auto",
open: function() {
$('#searchtable').tablesorter();
}
});
});
.tablesorter {
width: auto;
cursor: pointer;
widgets: ['zebra'];
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.27.8/js/jquery.tablesorter.js"></script>
<button id='searchButton'>Search</button>
<div id="searchdialog" title="Search Dialog"></div>
是的,这似乎有效,只需点击标题;)