Bug是jquery数据表? $ .fn.DataTable.isDataTable无法正常工作

时间:2015-04-22 12:46:55

标签: jquery jquery-datatables

function CreateTable(tableId, dataUrl) {
    var isdataTable = $.fn.DataTable.isDataTable($('#' + tableId));
    console.log('isdataTable: ' + isdataTable); 

    table = $('#' + tableId).DataTable({ 
        ...
        ...
    });
}

现在在某些情况下,我发现我得到了真实的'在isdataTable中,它仍然初始化数据表而没有错误...

我不明白,这可能吗?

3 个答案:

答案 0 :(得分:2)

无需将jQuery实例传递给isDataTable() - 只需传递选择器即可。您没有显示初始化选项,但如果您有destroy : true,则可以重新初始化dataTables实例而不会出现错误:

function CreateTable(tableId, dataUrl) {
    var isDataTable = $.fn.DataTable.isDataTable('#' + tableId);
    console.log('isDataTable: ' + isDataTable); 
    table = $('#' + tableId).DataTable({ 
       destroy : true
    });
}

演示 - >的 http://jsfiddle.net/Lgy0m45L/

否则,您需要评估isDataTable以避免丑陋的警报:

function CreateTable(tableId, dataUrl) {
    var isDataTable = $.fn.DataTable.isDataTable('#' + tableId);
    console.log('isDataTable: ' + isDataTable); 
    if (!isDataTable) { 
        table = $('#' + tableId).DataTable({ });
    }    
}

演示 - >的 http://jsfiddle.net/6bo7r0kk/

答案 1 :(得分:0)

我遇到了同样的错误。这似乎是angular-datatables-renderer.js文件中的错误。将文件中的行$.fn.dataTable.isDataTable更改为$.fn.dataTable.fnIsDataTable。这应该可以解决你的问题。

答案 2 :(得分:-1)

刚刚注意到这导致了1.10.5中的问题。 source 'https://rubygems.org' gem 'rails', '4.2.4' gem 'mysql2', '~> 0.3.20' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.1.0' gem 'remotipart', '~> 1.2' gem 'jquery-rails' gem 'turbolinks' gem 'jbuilder', '~> 2.0' gem 'sdoc', '~> 0.4.0', group: :doc gem 'bootstrap-sass', '~> 3.3.5' gem 'sass-rails', '~> 5.0' gem 'bootstrap_form' gem 'devise', '~> 3.5', '>= 3.5.2' gem 'bartt-ssl_requirement', '~>1.4.0', :require => 'ssl_requirement' gem 'will_paginate' gem 'paperclip' gem 'bcrypt', '~> 3.1.7' group :development, :test do console gem 'byebug' end 方法中存在一个现已解决的错误。见argument error