假设我有两个不同的功能/过滤器(例如计算和排序),以表格插件的形式。用户可以选择他现在想要使用哪一个。但两者一起存在冲突,因此当选择其中一个时,应停止/删除另一个(而不重新加载表本身)。我怎样才能实现这一目标?
例如,我使用 dataTable
jQuery 插件,该插件由
$('#myTable').dataTable();
但是当用户选择不同的过滤器时,我需要以某种方式“停用”此插件,以便其他过滤器能够正常工作而不会发生冲突。我尝试了 unbind
事件处理程序,但没有成功。
一般来说,逻辑如下:
$('.js_trigger').on('click', '.calculation' function() {
//Deactivate
$('#myTable').dataTable();
//Activate
$('#myTable').dataCalculation();
}
$('.js_trigger').on('click', '.sorting' function() {
//Deactivate
$('#myTable').dataCalculation();
//Activate
$('#myTable').dataTable();
}
我希望您明白我的意思,并且这个问题并不宽泛。
解决方案:
在@V31的提示下,我使用了empty()
函数。
1.) 在页面加载时,在任何其他脚本更改表之前,我将表中的所有内容放入变量中。
tableContent = $('#myTableContainer').html();
2.) 当需要加载不同的插件时,我会在执行插件之前清空容器并添加变量的内容。
$('#myTableContainer').empty();
$('#myTableContainer').html(tableContent);
$('#myTable').dataTable();
最佳答案
您可以清空(该元素的)父 div,以便删除绑定(bind)。像这样的事情:
$('#myTable').empty();
关于javascript - 删除 jQuery 插件而不重新加载内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24736416/