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