picker.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  6. <title></title>
  7. <!--标准mui.css-->
  8. <link rel="stylesheet" href="../css/mui.min.css">
  9. <!--App自定义的css-->
  10. <link rel="stylesheet" type="text/css" href="../css/app.css" />
  11. <link href="../css/mui.picker.css" rel="stylesheet" />
  12. <link href="../css/mui.poppicker.css" rel="stylesheet" />
  13. <!--<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />-->
  14. <style>
  15. .mui-btn {
  16. font-size: 16px;
  17. padding: 8px;
  18. margin: 3px;
  19. }
  20. h5.mui-content-padded {
  21. margin-left: 3px;
  22. margin-top: 20px !important;
  23. }
  24. h5.mui-content-padded:first-child {
  25. margin-top: 12px !important;
  26. }
  27. .ui-alert {
  28. text-align: center;
  29. padding: 20px 10px;
  30. font-size: 16px;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <header class="mui-bar mui-bar-nav">
  36. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
  37. <h1 class="mui-title">picker(选择器)</h1>
  38. </header>
  39. <div class="mui-content">
  40. <div class="mui-content-padded">
  41. <h5 class="mui-content-padded">原生 SELECT</h5>
  42. <select class="mui-btn mui-btn-block">
  43. <option value="item-1">item-1</option>
  44. <option value="item-2">item-2</option>
  45. <option value="item-3">item-3</option>
  46. <option value="item-4">item-4</option>
  47. <option value="item-5">item-5</option>
  48. </select>
  49. <br />
  50. <p>原生 SELECT(选择框)在不同的设备上UI可能会有差异,并且不支持多级联动(多个 SELECT 可实现,但较麻烦),故mui封装了picker组件,参见如下示例。</p>
  51. <h5 class="mui-content-padded">普通示例</h5>
  52. <button id='showUserPicker' class="mui-btn mui-btn-block" type='button'>一级选择示例 ...</button>
  53. <div id='userResult' class="ui-alert"></div>
  54. <h5 class="mui-content-padded">级联示例</h5>
  55. <button id='showCityPicker' class="mui-btn mui-btn-block" type='button'>二级联动示例 ...</button>
  56. <div id='cityResult' class="ui-alert"></div>
  57. <button id='showCityPicker3' class="mui-btn mui-btn-block" type='button'>三级联动示例 ...</button>
  58. <div id='cityResult3' class="ui-alert"></div>
  59. </div>
  60. </div>
  61. <script src="../js/mui.min.js"></script>
  62. <!--<script src="../js/mui.picker.min.js"></script>-->
  63. <script src="../js/mui.picker.js"></script>
  64. <script src="../js/mui.poppicker.js"></script>
  65. <script src="../js/city.data.js" type="text/javascript" charset="utf-8"></script>
  66. <script src="../js/city.data-3.js" type="text/javascript" charset="utf-8"></script>
  67. <script>
  68. (function($, doc) {
  69. $.init();
  70. $.ready(function() {
  71. /**
  72. * 获取对象属性的值
  73. * 主要用于过滤三级联动中,可能出现的最低级的数据不存在的情况,实际开发中需要注意这一点;
  74. * @param {Object} obj 对象
  75. * @param {String} param 属性名
  76. */
  77. var _getParam = function(obj, param) {
  78. return obj[param] || '';
  79. };
  80. //普通示例
  81. var userPicker = new $.PopPicker();
  82. userPicker.setData([{
  83. value: 'ywj',
  84. text: '董事长 叶文洁'
  85. }, {
  86. value: 'aaa',
  87. text: '总经理 艾AA'
  88. }, {
  89. value: 'lj',
  90. text: '罗辑'
  91. }, {
  92. value: 'ymt',
  93. text: '云天明'
  94. }, {
  95. value: 'shq',
  96. text: '史强'
  97. }, {
  98. value: 'zhbh',
  99. text: '章北海'
  100. }, {
  101. value: 'zhy',
  102. text: '庄颜'
  103. }, {
  104. value: 'gyf',
  105. text: '关一帆'
  106. }, {
  107. value: 'zhz',
  108. text: '智子'
  109. }, {
  110. value: 'gezh',
  111. text: '歌者'
  112. }]);
  113. var showUserPickerButton = doc.getElementById('showUserPicker');
  114. var userResult = doc.getElementById('userResult');
  115. showUserPickerButton.addEventListener('tap', function(event) {
  116. userPicker.show(function(items) {
  117. userResult.innerText = JSON.stringify(items[0]);
  118. //返回 false 可以阻止选择框的关闭
  119. //return false;
  120. });
  121. }, false);
  122. //-----------------------------------------
  123. //级联示例
  124. var cityPicker = new $.PopPicker({
  125. layer: 2
  126. });
  127. cityPicker.setData(cityData);
  128. var showCityPickerButton = doc.getElementById('showCityPicker');
  129. var cityResult = doc.getElementById('cityResult');
  130. showCityPickerButton.addEventListener('tap', function(event) {
  131. cityPicker.show(function(items) {
  132. cityResult.innerText = "你选择的城市是:" + items[0].text + " " + items[1].text;
  133. //返回 false 可以阻止选择框的关闭
  134. //return false;
  135. });
  136. }, false);
  137. //-----------------------------------------
  138. // //级联示例
  139. var cityPicker3 = new $.PopPicker({
  140. layer: 3
  141. });
  142. cityPicker3.setData(cityData3);
  143. var showCityPickerButton = doc.getElementById('showCityPicker3');
  144. var cityResult3 = doc.getElementById('cityResult3');
  145. showCityPickerButton.addEventListener('tap', function(event) {
  146. cityPicker3.show(function(items) {
  147. cityResult3.innerText = "你选择的城市是:" + _getParam(items[0], 'text') + " " + _getParam(items[1], 'text') + " " + _getParam(items[2], 'text');
  148. //返回 false 可以阻止选择框的关闭
  149. //return false;
  150. });
  151. }, false);
  152. });
  153. })(mui, document);
  154. </script>
  155. </body>
  156. </html>