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_widgets.htm
广告