我用这个插件使我的HTML表排序,它的工作很好。
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
您可以通过在Table类中添加Sortable来调用它
<table id='myTable' class="table table-striped table-hover table-bordered fixed_header sortable">
但是,当我在过滤后用 AJAX 更新表时,表正确更新,但失去了可排序功能。
我必须重新导入脚本吗?我试着把它放在我的home.html页面中,当然也放在我的filter.html页面中,这是在 AJAX 调用之后呈现的。
我也试过这些东西:Sortable function when content is updated via ajax
Why would javascript fail when called dynamically (Ajax)?
这是我的 AJAX
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
<form id="searchform" method="POST" action="{% url "article-filter" %}">
{% csrf_token %}
<input type="text" id="txtSearch" name="txtSearch">
<button type="submit" >Submit</button>
</form>
<script>
$("#searchform").submit(function(e) {
e.preventDefault();
$.ajaxSetup({
data: {txtSearch: $('#txtSearch').val(), csrfmiddlewaretoken: '{{ csrf_token }}' },});
$.ajax({
type: "POST",
url: "article-filter/",
dataType: 'json',
}).done(function(data) {
$('#myTable').html(data.html_table);
});
});
</script>
这里是home.html和filter.html中的表
table id='myTable' class="table table-striped table-hover table-bordered fixed_header sortable">
<thead class="table-dark">
<tr id='tableHeader'>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Phone</th>
<th scope="col">Address</th>
<th scope="col">City</th>
<th scope="col">State</th>
<th scope="col">Zipcode</th>
<th scope="col">Created At</th>
<th scope="col">ID</th>
</tr>
</thead>
<tbody>
{% if records %}
{% for record in records %}
<tr>
<td>{{ record.first_name }} {{ record.last_name }}</td>
<td>{{ record.email }}</td>
<td>{{ record.phone }}</td>
<td>{{ record.address }}</td>
<td>{{ record.city }}</td>
<td>{{ record.state }}</td>
<td>{{ record.zipcode }}</td>
<td>{{ record.created_at }}</td>
<td><a href="{% url 'record' record.id %}">{{ record.id }}</a></td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
谢谢
1条答案
按热度按时间3ks5zfa01#
我终于和它一起工作了。
在home.html中命名我的表id='myTable'
在filter.html id='myTable2'上命名更新的表
然后像这样更改我 AJAX 调用: