Jquery-mobile-filterable-callback
提供:Dev Guides
jQuery Mobile-カスタムコールバックのフィルター
説明
リストビューの拡張と同様に、コールバック関数をフィルターに提供したり、_filterablebeforefilter_イベントでフィルターを完全にオーバーライドすることもできます。 フィルタが実際に起動する前に、250msの遅延がかかります。 これにより、ユーザーが入力している間にフィルター機能が何度も実行されるのを防ぎます。
すべてのフィルター可能なウィジェットの新しいデフォルトを作成するには、カスタムフィルター関数を設定し、次のコードに示すように、_mobileinit_シグナルハンドラーでウィジェットプロトタイプの_filtercallback_オプションをオーバーライドします。
$( 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.
});
});
_filterCallback_オプションを設定することにより、次のコードに示すように、単一のフィルター可能なウィジェットにカスタムフィルター機能を設定できます。
$.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.
});
});
フィルターを完全にオーバーライドするには(たとえば、データサーバー側またはlocalStorageから読み込むたびに)、次のコードに示すように_filterablebeforfilter_イベントにバインドします。
$( ".selector" ).on( "filterablebeforefilter", function( e, data ) {
var value;
e.preventDefault();
value = data.input.value;
//trigger own request to database
});