一开始是弄个日期选择的插件,网上看到这个mobiscroll这个插件,然后各种下各种找demo,最后自己研究了一天下面把自己项目的demo拔出来分享给大家(以及文件下载),多多海涵,如果大家看了我的这文章有更好的写法还望赐教~
首先是常用的日期使用:
HTML部分: 
 
- <li id="birthday">  
-     <div class="mbase-menu-title">生日</div>  
-     <div  
-         class="mbase-menu-txt">未设置</div>  
-     <div class="clear"></div>  
- </li>  
 
JS部分:
 
 
- $("#birthday").mobiscroll().date({  
-             theme: "android-ics",  
-             lang: "zh",  
-             display: ‘bottom‘,  
-             dateFormat: ‘yy-mm-dd‘, 
-             
-             
-             headerText: function (valueText) { 
-                 array = valueText.split(‘-‘);  
-                 return array[0] + "年" + array[1] + "月" + array[2] + "日";  
-             },  
-             onSelect: function (valueText, inst) {  
-                 $(this).find(".mbase-menu-txt").html(valueText);  
-                 
-             }  
-         });  
 
这上门就是这个插件用在日期选择的部分,比较简单,查查api就知道了。这是效果图
 

下面的是treelist的,这个可用在比如选择文本项的时候,就因为这点我才觉得它真的够强大:
单项选择文本的
HTML部分:
 
 
- <li id="sex">  
-             <div class="mbase-menu-title">性别</div>  
-             <div class="mbase-menu-txt">未设置</div>  
-             <div class="clear"></div>  
-  </li>  
 
- <ul id="sex-list" style="display: none">  
-     <li>先生</li>  
-     <li>女士</li>  
- </ul>  
 
 
JS部分:
 
- $("#sex").click(function () {  
-             var that = this;  
-             $("#sex-list").mobiscroll().treelist({  
-                 theme: "android-ics",  
-                 lang: "zh",  
-                 display: ‘bottom‘,  
-                 inputClass: ‘tmp‘,  
-                 headerText: ‘请您选择‘,  
-                 onSelect: function (valueText) {  
-                     var m = $(this).find("li").eq(valueText).html();  
-                     
-                 }  
-             });  
-             $("input[id^=sex-list]").focus();  
-         });  
 
这里我说明下 由于我的项目结构比较例外,所以我才这样写的,官方的demo是直接
- $("#sex-list").mobiscroll().treelist({..})  
 
- 这因情况而异,后面那段<pre name="code" class="javascript">$("input[id^=sex-list]").focus();  
 
- 这里可能会问怎么回事啊,我也不知道怎么回事,只是我发现只要调用<pre name="code" class="javascript"><pre name="code" class="javascript">mobiscroll().treelist 的元素会自动变成input,然后弹出让你选择,这里我的项目结构为了美观,预算我设置了个inputClass:‘tmp‘   
 
 
- 这个tmp就是样式名,属性就一个透明度为0(<pre style="background-color:#272822;color:#f8f8f2;font-family:‘Consolas‘;font-size:12.0pt;"><span style="color:#f92672;">input</span>.<span style="color:#a6e22e;">tmp</span>{  
-     <span style="color:#66d9ef;"><em>opacity</em></span>: <span style="color:#ae81ff;">0</span>;  
- }  
 
),这样就遮丑了。还有一点要注意的就是
- valueText 这个参数在treelist方法里面是返回当前选择的第几个元素li的值。 

下面这个是两列选择的:
HTML部分:
 
- <li id="current-area">  
-             <div class="mbase-menu-title">现所在地</div>  
-             <div class="mbase-menu-txt">未设置</div>  
-             <div class="clear"></div>  
- </li>  
 
这个列表比较长,结构看明白就好
 
JS部分
 
- $("#current-area").click(function () {  
-             var that = this;  
-             $("#current-area-list").mobiscroll().treelist({  
-                 theme: "android-ics",  
-                 lang: "zh",  
-                 display: ‘bottom‘,  
-                 inputClass: ‘tmp‘,  
-                 headerText: ‘请您选择‘,  
-                 onSelect: function (valueText, inst) {  
-                     console.log(valueText);  
-                     var n = valueText.split(‘ ‘);  
-                     var m1 = $(this).children("li").eq(n[0]).find("div").html();  
-                     var m1_id = $(this).children("li").eq(n[0]).find("div").attr("data-value");  
-                     var m2 = $(this).children("li").eq(n[0]).find("li").eq(n[1]).html();  
-                     var m2_id = $(this).children("li").eq(n[0]).find("li").eq(n[1]).attr("data-value");  
-                     console.log(m1);  
-                     console.log(m2);  
-                     console.log(m1_id);  
-                     console.log(m2_id);  
-                     
-                 }  
-             });  
-             $("input[id^=current-area-list]").focus();  
-         });  
 
其它的和单选文本的没什么区别,只是想说下这时候的valueText,它的值是这样的 2 6,意思就是第一项选择的元素所在位置,后面那个数字表示的是第二项选择的元素所在的位置。
至于三项选择的我还没用到,但应该是可以的,好久没写博客,可能写的很馄饨,有什么不明白的可以留言交流。
附上css、js文件:
http://pan.baidu.com/s/1i5qcrUt
http://pan.baidu.com/s/1bpC9g5p