jQuery Mobile - 过滤自定义回调

描述

与列表视图的扩展一样,可以向过滤器提供回调函数,甚至可以在 filterablebeforefilter 事件上完全覆盖过滤器。 在过滤器实际触发之前,需要 250 毫秒的延迟。 这避免了过滤功能在用户键入时运行多次。

要为所有可过滤小部件创建新的默认值,请设置自定义过滤函数,在 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
});

❮ jQuery Mobile - 小部件