2017-01-08 1 views
0

01)JSON URLがあり、外部の.jsファイルを使用してHTMLテーブルにデータを動的にロードします。他の関数がロードされているときにMin-Maxフィルタが機能しない

02)私は名前(最初の列)のフィルタを持っています。 (それは正常に動作します)

03)私は各行に対して乗算関数を持っています。 (それは正常に動作します)

04)私は、3dの列に対してmin-max関数を持っています。 (それは働いていましたが動作しません)。

リンク

はここにある: LINK

コードはここに示されています:私はまた、内部のフィルター関数を呼び出しています

function minmax() { 

    filters(); 
    $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { 
     return parseFloat(data[2]) >= parseFloat($('#counter-low').val() || data[2]) && 
      parseFloat(data[2]) <= parseFloat($('#counter-high').val() || data[2]); 
    }); 

    var table = $('table').DataTable(); 
    $('#counter-low, #counter-high').on('keyup', table.draw); 
} 

。私はなぜそれが動作していないか把握することはできません。

UPD:私はヘッダー内の呼び出しの順序を変更しました。しかし、まだ100%働いていません。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
    <script src="js/jquery.min.js"></script> 
    <script src="js/jquery.multiselect.js"></script> 
    <script type="text/javascript" language="javascript" src="js/jquery.dataTables.min.js"></script> 
    <script type="text/javascript" language="javascript" src="js/allinone.js"></script> 

答えて

0

のdataTableから来るべきであるが、実際には、どちらも$ .fn.dataTableが利用可能かコマンド$( 'テーブル')のようです。ここで、iは追従できないのDataTable();

この機能を提供するスクリプトがないかもしれませんが、行を非表示にしたい場合は、min/maxで次のようなものを使用できます(現在jsut min - 私は完了していません - :

$('table').children('tbody').children('tr').filter(
function (key, element) { 
    if (
     parseFloat($(element).children(':nth-child(3)').text()) 
     < parseFloat($('#counter-low').val()) 
     || 
     parseFloat($(element).children(':nth-child(3)').text()) 
     > parseFloat($('#counter-high').val()) 
    ) 
     return true; 
    else 
     return false; 
}).css('display', 'none'); 
+0

ああ、それはjs/jquery.dataTables.min.jsスクリプトにあるようです - 本当にjqueryのいくつかのバージョンを含める必要がありますか? –

+0

ヘッダーで呼び出されたスクリプトの順序が変更されました。私は他のフィルタ/乗算を適用した後に、すべての場合にminmaxフィルタが動作することを願っています。 –

1

スクリプトが実行されている順序を確認します。スクリプトが実行されている場合は、おそらくそれが速くなることに注意してください。 Webコンソールのconsole.log()エラーもチェックしてください。ところで、<script>タグの言語属性は、長い間非難されており、使用しないでください。最近ではタイプが必要ではありません。また、2つのjQueryバージョンがあります。

<script src="js/jquery.dataTables.min.js"></script> 
関連する問題