jQuery Mobile Filterable input选项

jQuery Mobile提供了filterable input插件,用于在列表中筛选数据。此外,它还支持对列表的各个项目进行排序。为了方便讲解,以下的示例中均使用了jQuery库以及jQuery Mobile样式和脚本。

1. 引入必需的文件

在使用jQuery Mobile Filterable input前,需要先引入必需的文件。这些文件包括jQuery库、jQuery Mobile库、自定义样式文件(如有需要)以及Filterable input插件文件。以下是一个典型的HTML文件头部,包含了所有必需的文件的引用:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="https://raw.githubusercontent.com/jquery/jquery-mobile/master/js/widgets/filterable.min.js"></script>
</head>
<body>

2. 创建一个基本的列表

创建一个基本的列表。以下是一个简单的例子:

<ul data-role="listview" data-autodividers="true">
  <li>Apple</li>
  <li>Banana</li>
  <li>Cherry</li>
  <li>Date</li>
  <li>Elderberry</li>
  <li>Fig</li>
  <li>Grape</li>
  <li>Honeydew</li>
  <li>Isotope</li>
  <li>Jicama</li>
  <li>Kiwi</li>
  <li>Lemon</li>
  <li>Mango</li>
  <li>Nectarine</li>
  <li>Orange</li>
  <li>Peach</li>
  <li>Quintine</li>
  <li>Raspberry</li>
  <li>Strawberry</li>
  <li>Tangerine</li>
  <li>Ugli</li>
  <li>Vanilla Bean</li>
  <li>Watermelon</li>
  <li>Xigua</li>
  <li>Yellow Watermelon</li>
  <li>Zebrapple</li>
</ul>

3. 添加Filterable input插件

为列表添加Filterable input插件。以下是一个例子:

<ul data-role="listview" data-autodividers="true" data-filter="true" data-inset="true">
  <li>Apple</li>
  <li>Banana</li>
  <li>Cherry</li>
  <li>Date</li>
  <li>Elderberry</li>
  <li>Fig</li>
  <li>Grape</li>
  <li>Honeydew</li>
  <li>Isotope</li>
  <li>Jicama</li>
  <li>Kiwi</li>
  <li>Lemon</li>
  <li>Mango</li>
  <li>Nectarine</li>
  <li>Orange</li>
  <li>Peach</li>
  <li>Quintine</li>
  <li>Raspberry</li>
  <li>Strawberry</li>
  <li>Tangerine</li>
  <li>Ugli</li>
  <li>Vanilla Bean</li>
  <li>Watermelon</li>
  <li>Xigua</li>
  <li>Yellow Watermelon</li>
  <li>Zebrapple</li>
</ul>

在上述代码中,我们增加了以下的属性:
- data-filter="true"使得列表变为可筛选的
- data-inset="true"增加了列表的内边距(美观)

4. 自定义filterable input的主题

底层Styles中,filterable插件本身没有默认主题。它遵循父列表的主题。我们可以使用自定义主题色。以下是一个例子:

<style>
.ui-filterable {
  background-color: #fecb00 !important; /*Orange*/
}
.ui-filterable .ui-input-search {
  background-color: #ffff00 !important; /*Yellow*/
  border-radius: 15px;
  border-style: solid;
  border-color: #000000;
  color: #000000;
}
.ui-filterable .ui-input-clear {
  background-color: #ff0000 !important; /*Red*/
  color: white;
  border-radius: 15px;
  border-style: solid;
  border-color: #000000;
  margin-left: 5px;
}
.ui-filterable li.ui-first-child {
  margin-top: 10px;
}
.ui-filterable li:last-child {
  margin-bottom: 10px;
}
</style>

它的样式分别定义了Filterable input的背景色、输入框的背景色和清除按钮的样式、以及列表中第一个和最后一个元素的样式。

5. 自定义filterable input的回调函数

通过自定义回调函数,可以添加Filterable input筛选前和筛选后的操作。以下是一个例子:

<ul data-role="listview" data-autodividers="true" data-inset="true" id="listview">
  <li>Apple</li>
  <li>Banana</li>
  <li>Cherry</li>
  <li>Date</li>
  <li>Elderberry</li>
  <li>Fig</li>
  <li>Grape</li>
  <li>Honeydew</li>
  <li>Isotope</li>
  <li>Jicama</li>
  <li>Kiwi</li>
  <li>Lemon</li>
  <li>Mango</li>
  <li>Nectarine</li>
  <li>Orange</li>
  <li>Peach</li>
  <li>Quintine</li>
  <li>Raspberry</li>
  <li>Strawberry</li>
  <li>Tangerine</li>
  <li>Ugli</li>
  <li>Vanilla Bean</li>
  <li>Watermelon</li>
  <li>Xigua</li>
  <li>Yellow Watermelon</li>
  <li>Zebrapple</li>
</ul>

<script>
  $(document).on("pagecreate", function() {
    $("#listview").on("filterablebeforefilter", function(e, data) {
      var $ul = $(this),
      $input = $( data.input ),
      value = $input.val(),
      html = "";
     $ul.html( "" );
     if ( value && value.length > 0 ) {
        $ul.addClass( "ui-listview-filtering" );
        $ul.listview( "refresh" );
        $.ajax({
          url: "https://api.github.com/search/repositories?q=" + value,
          dataType: "jsonp",
          success: function ( response ) {
            $.each( response.data.items, function ( i, val ) {
              html += "<li><h2>" + val.full_name + "</h2><p>" + val.description + "</p></li>";
            });
            $ul.html(html);
            $ul.listview("refresh");
            $ul.trigger("updatelayout");
          }
        });
      }
    });
    $("#listview").on("filterableafterfilter", function(e, data) {
      var $ul = $(this),
      $input = $( data.input );
      $ul.removeClass( "ui-listview-filtering" );
    });
  });
</script>

该示例在Filterable input中过滤数据时,会先加载来自Github的仓库名以及它们的描述信息,这是通过$.ajax()函数完成的。

总结

在以上内容中,我们简短地介绍了如何使用jQuery Mobile Filterable input插件以及自定义它的主题和回调函数。这是提高移动应用程序用户体验的重要部分,因为它允许用户更直观地浏览大量数据并找到所需项。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery Mobile Filterable input选项 - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • jQWidgets jqxDataTable cellEndEdit事件

    以下是关于“jQWidgets jqxDataTable cellEndEdit事件”的完整攻略,包含两个示例说明: 简介 cellEndEdit 事件是 jqx 控件的一个事件,当单元格编辑完成触发。 攻略 以下是 jqxDataTable 控件的 cellEndEdit 事件完整攻略: 监听 cellEndEdit 事件 在 jqxDataTable 控…

    jquery 2023年5月11日
    00
  • 如何使用jQuery库来修改CSS类

    要使用jQuery库来修改CSS类,可以使用addClass()、removeClass()和toggleClass()方法。下面是一个完整攻略,包括两个示例说明。 步骤1:创建HTML和CSS 首先,我们需要一个HTML和,以便在页面中显示一些元素。下面是一个示例HTML和CSS: <!DOCTYPE html> <html> &l…

    jquery 2023年5月9日
    00
  • jQuery简单实现MD5加密的方法

    下面是“jQuery简单实现MD5加密的方法”的完整攻略: 什么是MD5加密 MD5加密是一种常用的加密方式,它可以将任意长度的消息压缩成一个128位的消息摘要(即16个字节),并且具有不可逆和唯一性等性质,经常被用于保障密码的安全性。 jQuery实现MD5加密的方法 在jQuery中,我们可以通过引入第三方库js-md5来实现MD5加密。首先需要通过sc…

    jquery 2023年5月28日
    00
  • webpack 最佳配置指北(推荐)

    下面是关于“webpack最佳配置指北(推荐)”的详细攻略: 一、什么是Webpack? Webpack是一个打包工具,它可以将多个模块打包成一个文件,以减少网络请求的次数,提高页面加载速度。Webpack的配置相对比较复杂,但是只要掌握了它的一些基本概念和配置方法,就可以轻松地优化你的项目。 二、Webpack配置的基本概念 Webpack的配置基本上都在…

    jquery 2023年5月27日
    00
  • jQWidgets jqxNavigationBar expandingItem 事件

    以下是关于 jQWidgets jqxNavigationBar 组件中 expandingItem 事件的详细攻略。 jQWidgets jqxNavigationBar expandingItem 事件 jQWidgets jqxNavigationBar 的 expandingItem 事件在导航中的项被展开之前触发。 语法 // 监听 expandi…

    jquery 2023年5月12日
    00
  • jQWidgets jqxFileUpload接受属性

    jQWidgets jqxFileUpload accept 属性 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包表格等。jqxFileUpload是jQWidgets的一个组件,用于实现上传功能。accept是jqxFileUpload的一个属性,用于设置允许上传的文件类型。本文将详细介绍accept属性,并提供两个示例。…

    jquery 2023年5月9日
    00
  • 详解AngularJS中的filter过滤器用法

    详解AngularJS中的filter过滤器用法 AngularJS的Filter过滤器用于格式化数据,在视图展示和表达式中使用它们可以使数据变得更加易读。在本文中,我们将详细介绍AngularJS的filter过滤器用法。 filter的基本使用 filter是一个AngularJS内置的过滤器,我们可以在表达式或者标签内使用它进行数据格式化,使用规则如下…

    jquery 2023年5月27日
    00
  • jQuery.fn.extend() 方法

    jQuery.fn.extend()方法用于向jQuery对象添加新的方法。本文将详细介绍fn.extend()方法的语法和用法,并提供两个示例说明。 语法 以下是fn.extend()方法的基本语法: $.fn.extend(object) 在这个语法中,object是要添加到jQuery对象中的新方法。fn.extend()方法将返回一个jQuery对象…

    jquery 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部