0

テーブルのフィルターにhttps://github.com/chromawoods/instaFiltaを使用しています

テーブルには、ajax を使用した動的な行挿入があり、各行セルは、次を使用してその場で編集を使用して更新できます。

https://github.com/itinken/jinplace

ここで、新しい行を追加してから、たとえば「タイトル」を「Linux」に編集してからフィルタリングしようとすると、「Linux」を含む行が表示され、「Linux」を「Unix」に変更してもう一度試してくださいサーバーからページをリロードせずにフィルター処理します。「Unix」という単語は古いデータに変更されます。ここでは、「Linux」とフィルターが機能せず、ページをリロードすると、タイトルが正しく「Unix」と表示されます。

そのため、フィルタリングを試みると、dom が古いデータから更新されます。

コード:

//インプレース編集

$(document).on('click', 'span.editable', function(event) {
    $('.editable').jinplace({
        url: '/onit/web/data-updater.php',
        textOnly: false,
        placeholder: '',
        okButton: '',
        cancelButton: ''
    })
    .on('jinplace:done', function(event, data) {
       console.log('Successful! New value is', data);
    });
});

これはコードです

// フィルター

$(document).on('click', '#filter-me', function(event) {
    //event.preventDefault();
    $('#filter-me').instaFilta({
        //scope: '.content-wrapper',
        //targets: '.instafilta-target',
        caseSensitive: false,
        markMatches: true,
        beginsWith: false,
        matchCssClass: 'instafilta-match',
        itemsHideEffect: 'slideUp',
        itemsHideDuration:300
    });
});

edit-in-place を使用して行が更新されたときにフィルターを更新するにはどうすればよいですか、または instaFilta に最新の dom を取得するように指示するにはどうすればよいですか?

4

1 に答える 1

0

あなたはこれを試すことができます

$(document).ajaxComplete(function() {
    $("#filter-me").instaFilta({
        scope: "#ex1" 
    });
});

ajax終了後にフィルタリングを初期化する

于 2015-10-29T13:38:13.017 に答える