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
});