jQuery Mobile - Filtro de retorno de chamada personalizado

Descrição

Como acontece com a extensão do listview, a função de retorno de chamada pode ser fornecida ao filtro ou até mesmo substituir o filtro inteiramente no evento filterablebeforefilter . Antes de o filtro disparar, ele leva um atraso de 250 ms. Isso evita que a função de filtragem seja executada muitas vezes enquanto o usuário está digitando.

Para criar um novo padrão para todos os widgets filtráveis, definir uma função de filtragem de costume, substituir o filtercallback opção no protótipo Widget em um mobileinit manipulador de sinal, como mostrado no código a seguir.

$( document ).one( "mobileinit", function() {
   $.mobile.filterable.prototype.options.filterCallback = function( index, searchValue ) {
      // The this keyword in this function refers to the element
      // for the code which decide whether or not to filter.
      // The true return value shows that the element referred
      // to by this keyword is to be filtered.
      // If returns false specifies that the item is to be displayed.
      //
      // Custom filtering logic goes here.
   });
});

Ao definir as opções de filterCallback , você pode definir uma função de filtragem personalizada para um único widget filtrável, conforme mostrado no código a seguir.

$.mobile.document.one( "filterablecreate", "#myFilterable", function() {
   $( "#myFilterable" ).filterable( "option", "filterCallback", 
      function( index, searchValue ) {
      // The above example explains the callback function's signature.
      //
      // Custom filtering logic goes here.
   });
});

Para substituir o filtro completamente (por exemplo, sempre que carregar os dados do lado do servidor ou de localStorage), vincule ao evento filterablebeforfilter conforme mostrado no código a seguir.

$( ".selector" ).on( "filterablebeforefilter", function( e, data ) {
   var value;

   e.preventDefault();
   value = data.input.value;
   // trigger own request to database
});