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