Tablesorter在jQueryUI对话框中没有做任何事情

时间:2016-10-04 14:38:39

标签: jquery jquery-ui jquery-ui-dialog tablesorter

我试图在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;
&#13;
&#13;

这是我在stackoverflow上的第一个问题,我对插入代码等不太熟悉,我从jsfiddle(https://jsfiddle.net/JMKivi/kumrgyaw/12/)复制/粘贴了代码。所以如果使用stackoverflow有错误或者重要的东西似乎缺失,请告诉我。 修改:我现在已将<button id='searchButton'>Search</button>更改为<div id='searchButton'>Search</div>。它仍然在这里工作,但不是在jsfiddle和我的生产环境中。无论如何,谢谢你的帮助。

1 个答案:

答案 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>

是的,这似乎有效,只需点击标题;)