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

