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

时间:2014-07-14 12:19:17

标签: 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();

1 个答案:

答案 0 :(得分:1)

您可以清空父div(该元素),以便删除绑定。像这样:

$('#myTable').empty();