fnSetFilteringDelay custom column filter delay with ajax support
fnSetFilteringDelay custom column filter delay with ajax support
While browsing this board for answers on the topic I could not find one, so I decided to share my luck with thisone.
I have adapted the fnSetFilteringDelay plugin so it would fit the need for ajax delayed calls.
jQuery.fn.dataTableExt.oApi.fnSetFilteringDelay = function ( oSettings, iDelay ) {
    var _that = this;
    if ( iDelay === undefined ) {
        iDelay = 250;
    }
    this.each( function ( i ) {
        $.fn.dataTableExt.iApiIndex = i;
        var
            $this = this,
            //anControl = $( 'input', _that.fnSettings().aanFeatures.f );
            anControl = $('input', $('th', _that) ); // use custom inputs instead of default Search field
        var oTimerId = new Array,
            sPreviousSearch = new Array;
            anControl.each( function(ind, el) {
                $(this).unbind( 'keyup search input' ).bind( 'keyup search input', function() {
                    var $$this = $this;
                    if (sPreviousSearch[ind] === null || sPreviousSearch[ind] != $(this).val()) {
                        window.clearTimeout(oTimerId[ind]);
                        sPreviousSearch[ind] = $(this).val();
                        oTimerId[ind] = window.setTimeout(function() {
                            $.fn.dataTableExt.iApiIndex = i;
// this line tells the ajax to do a column search instead of global search
                            _that.DataTable().column(ind)).search( $(el).val() ).draw();
                        }, iDelay);
                    }
                });
            });
        return this;
    } );
    return this;
};
Hope anyone finds this useful.
This discussion has been closed.
            
Replies
That uses the old API, such as fnFilter etc. I would suggest that you might want to consider using the built in filter delay in 1.10 -
searchDelay.Allan
Thanks, missed thisone! ;)