javascript - 删除 jQuery 插件而不重新加载内容

标签 javascript jquery jquery-plugins

假设我有两个不同的功能/过滤器(例如计算和排序),以表格插件的形式。用户可以选择他现在想要使用哪一个。但两者一起存在冲突,因此当选择其中一个时,应停止/删除另一个(而不重新加载表本身)。我怎样才能实现这一目标?

例如,我使用 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/

相关文章:

javascript - 如何获取Json数组中的数据? - Backbone js

javascript - JavaScript、Websockets 和 Java 的组合

javascript - 仅在 Firefox (JQuery) 文本字段的开始和结束时不触发按键事件

javascript - jQuery - 如何删除 .submit() 和 .focus() 事件

jquery - jQuery Greedy Droppable Dialog 可能吗?

javascript - 在开发和部署期间,我应该使用缩小版还是常规版的 jQuery 插件?

javascript - Spectrum.js 在 angularjs 中使用时未初始化

javascript - 同一页面中的两个 ui-view AngularJs

jquery - Kendo UI 网格绑定(bind)两次

javascript - Jquery 没有正确循环功能