- jQuery Mobile 教程
- jQuery Mobile - 主页
- jQuery Mobile - 概述
- jQuery Mobile - 设置
- jQuery Mobile - 页面
- jQuery Mobile - 图标
- jQuery Mobile - 过渡
- jQuery Mobile - 布局
- jQuery Mobile - 部件
- jQuery Mobile - 事件
- jQuery Mobile - 表单
- jQuery Mobile - 主题
- jQuery Mobile - CSS 类
- jQuery Mobile - 数据属性
- jQuery Mobile 有用资料
- jQuery Mobile - 面试问题
- jQuery Mobile - 快速指南
- jQuery Mobile - 有用资料
- jQuery Mobile - 讨论
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
广告