jQuery Mobile - Filtra richiamata personalizzata
Descrizione
Come con l'estensione di listview, la funzione di callback può essere fornita al filtro o addirittura sovrascrivere il filtro interamente sull'evento filterablebeforefilter . Prima che il filtro si attivi effettivamente, ci vuole un ritardo di 250 ms. Ciò evita che la funzione di filtraggio venga eseguita molte volte mentre l'utente sta digitando.
Per creare un nuovo valore predefinito per tutti i widget filtrabili, impostare una funzione di filtro personalizzata, sovrascrivere l' opzione filtercallback nel prototipo del widget in un gestore di segnale mobileinit come mostrato nel codice seguente.
$( 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.
});
});
Impostando le opzioni filterCallback , è possibile impostare una funzione di filtro personalizzata per un singolo widget filtrabile come mostrato nel codice seguente.
$.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.
});
});
Per sostituire completamente il filtro (ad esempio, ogni volta che il caricamento del lato server di dati o da localStorage), si legano alla filterablebeforfilter evento come mostrato nel seguente codice.
$( ".selector" ).on( "filterablebeforefilter", function( e, data ) {
var value;
e.preventDefault();
value = data.input.value;
// trigger own request to database
});