Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mui
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
mui
Commits
b0089a43
Commit
b0089a43
authored
Jun 26, 2015
by
hbcui1984
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
选择列表增加省、市、县三级联动示例
parent
b97623e7
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
11875 additions
and
194 deletions
+11875
-194
examples/hello-mui/css/mui.listpicker.css
examples/hello-mui/css/mui.listpicker.css
+3
-0
examples/hello-mui/examples/poppicker.html
examples/hello-mui/examples/poppicker.html
+20
-4
examples/hello-mui/js/city.data-3.js
examples/hello-mui/js/city.data-3.js
+11548
-0
examples/hello-mui/js/mui.listpicker.js
examples/hello-mui/js/mui.listpicker.js
+304
-190
No files found.
examples/hello-mui/css/mui.listpicker.css
View file @
b0089a43
...
@@ -46,6 +46,9 @@
...
@@ -46,6 +46,9 @@
padding
:
8px
;
padding
:
8px
;
text-align
:
center
;
text-align
:
center
;
color
:
#555
;
color
:
#555
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
}
.mui-listpicker
ul
li
:last-child
{
.mui-listpicker
ul
li
:last-child
{
border-bottom
:
none
;
border-bottom
:
none
;
...
...
examples/hello-mui/examples/poppicker.html
View file @
b0089a43
...
@@ -40,17 +40,20 @@
...
@@ -40,17 +40,20 @@
<div
class=
"mui-content"
>
<div
class=
"mui-content"
>
<div
class=
"mui-content-padded"
>
<div
class=
"mui-content-padded"
>
<h5
class=
"mui-content-padded"
>
普通示例
</h5>
<h5
class=
"mui-content-padded"
>
普通示例
</h5>
<button
id=
'showUserPicker'
class=
"mui-btn mui-btn-block"
type=
'button'
>
显示选择人员
...
</button>
<button
id=
'showUserPicker'
class=
"mui-btn mui-btn-block"
type=
'button'
>
一级选择示例
...
</button>
<div
id=
'userResult'
class=
"ui-alert"
></div>
<div
id=
'userResult'
class=
"ui-alert"
></div>
<h5
class=
"mui-content-padded"
>
级联示例
</h5>
<h5
class=
"mui-content-padded"
>
级联示例
</h5>
<button
id=
'showCityPicker'
class=
"mui-btn mui-btn-block"
type=
'button'
>
显示选择城市
...
</button>
<button
id=
'showCityPicker'
class=
"mui-btn mui-btn-block"
type=
'button'
>
二级联动示例
...
</button>
<div
id=
'cityResult'
class=
"ui-alert"
></div>
<div
id=
'cityResult'
class=
"ui-alert"
></div>
<button
id=
'showCityPicker3'
class=
"mui-btn mui-btn-block"
type=
'button'
>
三级联动示例 ...
</button>
<div
id=
'cityResult3'
class=
"ui-alert"
></div>
</div>
</div>
</div>
</div>
<script
src=
"../js/mui.min.js"
></script>
<script
src=
"../js/mui.min.js"
></script>
<script
src=
"../js/mui.listpicker.js"
></script>
<script
src=
"../js/mui.listpicker.js"
></script>
<script
src=
"../js/mui.poppicker.js"
></script>
<script
src=
"../js/mui.poppicker.js"
></script>
<script
src=
"../js/city.data.js"
type=
"text/javascript"
charset=
"utf-8"
></script>
<script
src=
"../js/city.data.js"
type=
"text/javascript"
charset=
"utf-8"
></script>
<script
src=
"../js/city.data-3.js"
type=
"text/javascript"
charset=
"utf-8"
></script>
<script>
<script>
(
function
(
$
,
doc
)
{
(
function
(
$
,
doc
)
{
$
.
init
();
$
.
init
();
...
@@ -94,7 +97,7 @@
...
@@ -94,7 +97,7 @@
userPicker
.
show
(
function
(
items
)
{
userPicker
.
show
(
function
(
items
)
{
userResult
.
innerText
=
JSON
.
stringify
(
items
[
0
]);
userResult
.
innerText
=
JSON
.
stringify
(
items
[
0
]);
});
});
},
false
);
},
false
);
//-----------------------------------------
//-----------------------------------------
//级联示例
//级联示例
var
cityPicker
=
new
$
.
PopPicker
({
var
cityPicker
=
new
$
.
PopPicker
({
...
@@ -105,7 +108,20 @@
...
@@ -105,7 +108,20 @@
var
cityResult
=
doc
.
getElementById
(
'
cityResult
'
);
var
cityResult
=
doc
.
getElementById
(
'
cityResult
'
);
showCityPickerButton
.
addEventListener
(
'
tap
'
,
function
(
event
)
{
showCityPickerButton
.
addEventListener
(
'
tap
'
,
function
(
event
)
{
cityPicker
.
show
(
function
(
items
)
{
cityPicker
.
show
(
function
(
items
)
{
cityResult
.
innerText
=
"
你选择的城市是:
"
+
items
[
0
].
text
+
items
[
1
].
text
;
cityResult
.
innerText
=
"
你选择的城市是:
"
+
items
[
0
].
text
+
"
"
+
items
[
1
].
text
;
});
},
false
);
//-----------------------------------------
// //级联示例
var
cityPicker3
=
new
$
.
PopPicker
({
layer
:
3
});
cityPicker3
.
setData
(
cityData3
);
var
showCityPickerButton
=
doc
.
getElementById
(
'
showCityPicker3
'
);
var
cityResult3
=
doc
.
getElementById
(
'
cityResult3
'
);
showCityPickerButton
.
addEventListener
(
'
tap
'
,
function
(
event
)
{
cityPicker3
.
show
(
function
(
items
)
{
cityResult3
.
innerText
=
"
你选择的城市是:
"
+
items
[
0
].
text
+
"
"
+
items
[
1
].
text
+
"
"
+
items
[
2
].
text
;
});
});
},
false
);
},
false
);
});
});
...
...
examples/hello-mui/js/city.data-3.js
0 → 100644
View file @
b0089a43
This source diff could not be displayed because it is too large. You can
view the blob
instead.
examples/hello-mui/js/mui.listpicker.js
View file @
b0089a43
...
@@ -23,226 +23,340 @@
...
@@ -23,226 +23,340 @@
return
[].
slice
.
call
(
$
.
__create_dom_div__
.
childNodes
);
return
[].
slice
.
call
(
$
.
__create_dom_div__
.
childNodes
);
};
};
//plugin
var
ListPicker
=
$
.
ListPicker
=
$
.
Class
.
extend
({
$
.
fn
.
listpicker
=
function
(
options
)
{
init
:
function
(
box
,
options
)
{
return
this
.
each
(
function
(
index
,
box
)
{
var
self
=
this
;
if
(
!
box
)
{
throw
"
构造 ListPicker 时找不到元素
"
;
}
self
.
box
=
box
;
//避免重复初始化开始
//避免重复初始化开始
if
(
box
.
__listpicker_inited
)
return
;
if
(
self
.
box
.
__listpicker_inited
)
return
;
box
.
__listpicker_inited
=
true
;
self
.
box
.
__listpicker_inited
=
true
;
//避免重复初始化结束
//避免重复初始化结束
//
options
=
options
||
{};
var
boxInner
=
$
(
'
.mui-listpicker-inner
'
,
box
)[
0
];
options
.
fiexdDur
=
options
.
fiexdDur
||
150
;
if
(
$
.
os
.
ios
)
{
//ios 默认用 h5 模式
boxInner
.
classList
.
add
(
'
mui-listpicker-inner-ios
'
);
if
(
options
.
enabledH5
===
null
||
typeof
options
.
enabledH5
===
'
undefined
'
)
{
options
.
enabledH5
=
$
.
os
.
ios
;
}
}
var
boxHeight
=
box
.
offsetHeight
;
//options.enabledH5 = true;
var
ul
=
$
(
'
ul
'
,
boxInner
)[
0
];
self
.
options
=
options
;
var
firstItem
=
$
(
'
li
'
,
ul
)[
0
];
self
.
_create
();
var
itemHeight
=
0
;
self
.
_handleShim
();
self
.
_bindEvent
();
self
.
_applyToBox
();
self
.
_handleHighlight
();
},
_create
:
function
()
{
var
self
=
this
;
self
.
boxInner
=
$
(
'
.mui-listpicker-inner
'
,
self
.
box
)[
0
];
self
.
boxHeight
=
self
.
box
.
offsetHeight
;
self
.
list
=
$
(
'
ul
'
,
self
.
boxInner
)[
0
];
var
firstItem
=
$
(
'
li
'
,
self
.
list
)[
0
];
self
.
itemHeight
=
0
;
if
(
firstItem
)
{
if
(
firstItem
)
{
itemHeight
=
firstItem
.
offsetHeight
;
self
.
itemHeight
=
firstItem
.
offsetHeight
;
}
else
{
}
else
{
ul
.
innerHTML
=
"
<li>...</li>
"
;
self
.
list
.
innerHTML
=
"
<li>...</li>
"
;
firstItem
=
$
(
'
li
'
,
ul
)[
0
];
firstItem
=
$
(
'
li
'
,
self
.
list
)[
0
];
itemHeight
=
firstItem
.
offsetHeight
;
self
.
itemHeight
=
firstItem
.
offsetHeight
;
ul
.
innerHTML
=
''
;
self
.
list
.
innerHTML
=
''
;
}
}
ul
.
style
.
paddingTop
=
ul
.
style
.
paddingBottom
=
(
boxHeight
/
2
-
itemHeight
/
2
)
+
'
px
'
;
self
.
list
.
style
.
paddingTop
=
self
.
list
.
style
.
paddingBottom
=
(
self
.
boxHeight
/
2
-
self
.
itemHeight
/
2
)
+
'
px
'
;
var
rule
=
$
.
dom
(
'
<div class="mui-listpicker-rule"> </div>
'
)[
0
];
self
.
rule
=
$
.
dom
(
'
<div class="mui-listpicker-rule"> </div>
'
)[
0
];
rule
.
style
.
height
=
itemHeight
+
'
px
'
;
self
.
rule
.
style
.
height
=
self
.
itemHeight
+
'
px
'
;
rule
.
style
.
marginTop
=
-
(
itemHeight
/
2
)
+
'
px
'
;
self
.
rule
.
style
.
marginTop
=
-
(
self
.
itemHeight
/
2
)
+
'
px
'
;
box
.
appendChild
(
rule
);
self
.
box
.
appendChild
(
self
.
rule
);
//
if
(
$
.
os
.
ios
)
{
var
disabledScrollEnd
=
false
;
self
.
boxInner
.
classList
.
add
(
'
mui-listpicker-inner-ios
'
);
var
scrollEnd
=
function
(
event
)
{
}
if
(
disabledScrollEnd
)
return
;
},
disabledScrollEnd
=
true
;
_handleShim
:
function
()
{
/*
var
self
=
this
;
var remainder = boxInner.scrollTop % itemHeight;
if
(
self
.
options
.
enabledH5
)
{
if(remainder>itemHeight/2){
self
.
options
.
fiexdDur
*=
2
;
boxInner.scrollTop+=(itemHeight-remainder);
self
.
_scrollerApi
=
$
(
self
.
boxInner
).
scroll
();
}el
self
.
setScrollTop
=
function
(
y
,
dur
,
callback
)
{
boxInner.scrollTop-=remainder;
self
.
_scrollerApi
.
scrollTo
(
0
,
-
y
,
dur
);
}*/
};
var
fiexd
=
parseInt
((
boxInner
.
scrollTop
/
itemHeight
).
toFixed
(
0
));
self
.
getScrollTop
=
function
()
{
var
self
=
this
;
setTimeout
(
function
()
{
if
(
self
.
_scrollerApi
.
lastY
>
0
)
{
box
.
setSelectedIndex
(
fiexd
);
return
0
$
.
trigger
(
box
,
'
change
'
,
{
index
:
box
.
getSelectedIndex
(),
value
:
box
.
getSelectedValue
(),
text
:
box
.
getSelectedText
(),
item
:
box
.
getSelectedItem
(),
element
:
box
.
getSelectedElement
()
});
handleHighlight
(
event
);
disabledScrollEnd
=
false
;
},
0
);
};
var
handleHighlight
=
function
(
event
)
{
var
fiexd
=
parseInt
((
boxInner
.
scrollTop
/
itemHeight
).
toFixed
(
0
));
var
itemElements
=
$
(
'
li
'
,
ul
);
for
(
var
index
in
itemElements
)
{
var
itemElement
=
itemElements
[
index
];
if
(
!
itemElement
||
!
itemElement
.
classList
)
continue
;
if
(
index
==
fiexd
)
{
itemElement
.
classList
.
add
(
'
mui-listpicker-highlight
'
);
}
else
{
}
else
{
itemElement
.
classList
.
remove
(
'
mui-listpicker-highlight
'
);
return
Math
.
abs
(
self
.
_scrollerApi
.
lastY
);
}
}
}
};
/*
}
else
{
var opacity = 1;
//alert(0);
for (var index = fiexd; index >= 0; index--) {
//为 boxInner 增加 scrollend 事件 (没有原生 scrollend 事件)
var itemElement = itemElements[index];
self
.
boxInner
.
addEventListener
(
'
scroll
'
,
function
(
event
)
{
itemElement.style.opacity = opacity;
if
(
self
.
disabledScroll
)
return
;
opacity -= 0.25;
self
.
isScrolling
=
true
;
if (opacity < 0) opacity = 0;
if
(
self
.
scrollTimer
)
{
}
clearTimeout
(
self
.
scrollTimer
);
opacity = 1;
var length = itemElements.length;
for (var index = fiexd; index < itemElements.length; index++) {
var itemElement = itemElements[index];
itemElement.style.opacity = opacity;
opacity -= 0.25;
if (opacity < 0) opacity = 0;
}
*/
};
var
isTouchDown
=
false
;
var
isScrolling
=
false
;
boxInner
.
addEventListener
(
'
scroll
'
,
function
(
event
)
{
if
(
disabledScrollEnd
)
return
;
isScrolling
=
true
;
if
(
boxInner
.
scrollTimer
)
{
clearTimeout
(
boxInner
.
scrollTimer
);
}
handleHighlight
(
event
);
boxInner
.
scrollTimer
=
setTimeout
(
function
()
{
isScrolling
=
false
;
if
(
!
isTouchDown
||
!
mui
.
os
.
ios
)
{
scrollEnd
(
event
);
}
}
},
100
);
self
.
scrollTimer
=
setTimeout
(
function
()
{
},
false
)
;
self
.
isScrolling
=
false
;
//在 ios 上手指不弹起时,防止定位抖动开始
if
(
!
self
.
isTouchDown
||
!
$
.
os
.
ios
)
{
if
(
mui
.
os
.
ios
)
{
$
.
trigger
(
self
.
boxInner
,
'
scrollend
'
);
boxInner
.
addEventListener
(
'
touchstart
'
,
function
(
event
)
{
}
isTouchDown
=
true
;
},
100
)
;
},
false
);
},
false
);
boxInner
.
addEventListener
(
'
touchend
'
,
function
(
event
)
{
self
.
aniScrollTop
=
function
(
y
,
dur
,
callback
)
{
isTouchDown
=
false
;
self
.
disabledScroll
=
true
;
if
(
!
isScrolling
)
{
var
stepNum
=
dur
>
0
?
dur
/
10
:
1
;
var
stepSize
=
(
y
-
self
.
boxInner
.
scrollTop
)
/
stepNum
;
self
.
_lastScrollTop
=
self
.
boxInner
.
scrollTop
;
//记录最后的位置
self
.
_aniScrollTop
(
y
,
0
,
stepNum
,
stepSize
,
callback
);
};
self
.
_aniScrollTop
=
function
(
y
,
stepIndex
,
stepNum
,
stepSize
,
callback
)
{
self
.
boxInner
.
scrollTop
=
self
.
_lastScrollTop
+
stepSize
*
stepIndex
;
if
(
stepIndex
<
stepNum
)
{
setTimeout
(
function
()
{
setTimeout
(
function
()
{
scrollEnd
(
event
);
self
.
_aniScrollTop
(
y
,
++
stepIndex
,
stepNum
,
stepSize
);
},
0
);
},
10
);
}
else
{
//self.boxInner.scrollTop = y;
self
.
disabledScroll
=
false
;
if
(
callback
)
callback
();
}
}
},
false
);
};
self
.
setScrollTop
=
function
(
y
,
dur
,
callback
)
{
self
.
aniScrollTop
(
y
,
dur
);
};
self
.
getScrollTop
=
function
()
{
var
self
=
this
;
return
self
.
boxInner
.
scrollTop
;
};
//在 ios 上手指不弹起时,防止定位抖动开始
if
(
$
.
os
.
ios
)
{
self
.
boxInner
.
addEventListener
(
'
touchstart
'
,
function
(
event
)
{
var
self
=
this
;
self
.
isTouchDown
=
true
;
},
false
);
self
.
boxInner
.
addEventListener
(
'
touchend
'
,
function
(
event
)
{
self
.
isTouchDown
=
false
;
if
(
!
self
.
isScrolling
)
{
setTimeout
(
function
()
{
$
.
trigger
(
self
.
boxInner
,
'
scrollend
'
);
},
0
);
}
},
false
);
}
//在 ios 上手指不弹起时,防止定位抖动结束
}
}
//在 ios 上手指不弹起时,防止定位抖动结束
},
$
(
boxInner
).
on
(
'
tap
'
,
'
li
'
,
function
(
event
)
{
_handleHighlight
:
function
()
{
var
self
=
this
;
var
scrollTop
=
self
.
getScrollTop
();
var
fiexd
=
(
scrollTop
/
self
.
itemHeight
).
toFixed
(
0
);
var
itemElements
=
$
(
'
li
'
,
self
.
list
);
for
(
var
index
in
itemElements
)
{
var
itemElement
=
itemElements
[
index
];
if
(
!
itemElement
||
!
itemElement
.
classList
)
continue
;
if
(
index
==
fiexd
)
{
itemElement
.
classList
.
add
(
'
mui-listpicker-highlight
'
);
}
else
{
itemElement
.
classList
.
remove
(
'
mui-listpicker-highlight
'
);
}
}
/*
var opacity = 1;
for (var index = fiexd; index >= 0; index--) {
var itemElement = itemElements[index];
itemElement.style.opacity = opacity;
opacity -= 0.25;
if (opacity < 0) opacity = 0;
}
opacity = 1;
var length = itemElements.length;
for (var index = fiexd; index < itemElements.length; index++) {
var itemElement = itemElements[index];
itemElement.style.opacity = opacity;
opacity -= 0.25;
if (opacity < 0) opacity = 0;
}
*/
},
_triggerChange
:
function
()
{
var
self
=
this
;
$
.
trigger
(
self
.
box
,
'
change
'
,
{
index
:
self
.
getSelectedIndex
(),
value
:
self
.
getSelectedValue
(),
text
:
self
.
getSelectedText
(),
item
:
self
.
getSelectedItem
(),
element
:
self
.
getSelectedElement
()
});
},
_scrollEndHandle
:
function
()
{
var
self
=
this
;
var
scrollTop
=
self
.
getScrollTop
();
var
fiexd
=
(
scrollTop
/
self
.
itemHeight
).
toFixed
(
0
);
self
.
disabledScrollEnd
=
true
;
self
.
setSelectedIndex
(
fiexd
);
self
.
_triggerChange
();
self
.
_handleHighlight
();
setTimeout
(
function
()
{
self
.
disabledScrollEnd
=
false
;
self
.
_handleHighlight
();
},
self
.
options
.
fiexdDur
);
},
_bindEvent
:
function
()
{
var
self
=
this
;
//滚动处理高亮
self
.
boxInner
.
addEventListener
(
'
scroll
'
,
function
(
event
)
{
self
.
_handleHighlight
(
event
);
},
false
);
//处理滚动结束
self
.
disabledScrollEnd
=
false
;
self
.
boxInner
.
addEventListener
(
'
scrollend
'
,
function
(
event
)
{
if
(
self
.
disabledScrollEnd
)
return
;
self
.
disabledScrollEnd
=
true
;
self
.
_scrollEndHandle
();
},
false
);
//绑定项 tap 事件
$
(
self
.
boxInner
).
on
(
'
tap
'
,
'
li
'
,
function
(
event
)
{
var
tapItem
=
this
;
var
tapItem
=
this
;
var
items
=
[].
slice
.
call
(
$
(
'
li
'
,
ul
));
var
items
=
[].
slice
.
call
(
$
(
'
li
'
,
self
.
list
));
for
(
var
i
in
items
)
{
for
(
var
i
in
items
)
{
var
item
=
items
[
i
];
var
item
=
items
[
i
];
if
(
item
==
tapItem
)
{
if
(
item
==
tapItem
)
{
box
.
setSelectedIndex
(
i
);
self
.
setSelectedIndex
(
i
);
return
;
return
;
}
}
};
};
});
});
box
.
getSelectedIndex
=
function
()
{
},
return
parseInt
(
boxInner
.
scrollTop
/
itemHeight
);
getSelectedIndex
:
function
()
{
var
self
=
this
;
return
(
self
.
getScrollTop
()
/
self
.
itemHeight
).
toFixed
(
0
);
},
setSelectedIndex
:
function
(
index
,
noAni
)
{
var
self
=
this
;
index
=
(
index
||
0
);
self
.
setScrollTop
(
self
.
itemHeight
*
index
,
noAni
?
0
:
self
.
options
.
fiexdDur
);
},
getSelectedElement
:
function
()
{
var
self
=
this
;
var
index
=
self
.
getSelectedIndex
();
return
$
(
'
li
'
,
self
.
list
)[
index
];
},
getSelectedItem
:
function
()
{
var
self
=
this
;
var
itemElement
=
self
.
getSelectedElement
();
if
(
!
itemElement
)
return
null
;
var
itemJson
=
itemElement
.
getAttribute
(
'
data-item
'
);
return
itemJson
?
JSON
.
parse
(
itemJson
)
:
{
text
:
itemElement
.
innerText
,
value
:
itemElement
.
getAttribute
(
'
data-value
'
)
};
};
var
aniScrollTop
=
function
(
y1
,
y2
,
dur
,
callback
)
{
},
var
stepNum
=
dur
/
13
;
setItems
:
function
(
items
)
{
var
stepSize
=
(
y2
-
y1
)
/
stepNum
;
var
self
=
this
;
setTimeout
(
function
()
{
var
buffer
=
[];
_aniScrollTop
(
y1
,
y2
,
0
,
stepNum
,
stepSize
,
callback
);
for
(
index
in
items
)
{
},
13
);
var
item
=
items
[
index
]
||
{
};
text
:
'
null
'
,
var
_aniScrollTop
=
function
(
y1
,
y2
,
stepIndex
,
stepNum
,
stepSize
,
callback
)
{
value
:
'
null
'
+
index
var
val
=
stepIndex
*
stepSize
;
};
boxInner
.
scrollTop
=
y1
+
val
;
var
itemJson
=
JSON
.
stringify
(
item
);
if
(
stepIndex
<
stepNum
)
{
buffer
.
push
(
"
<li data-value='
"
+
item
.
value
+
"
' data-item='
"
+
itemJson
+
"
'>
"
+
item
.
text
+
"
</li>
"
);
stepIndex
++
;
setTimeout
(
function
()
{
_aniScrollTop
(
y1
,
y2
,
stepIndex
,
stepNum
,
stepSize
);
},
13
);
}
else
{
boxInner
.
scrollTop
=
y2
;
if
(
callback
)
callback
();
}
};
box
.
setSelectedIndex
=
function
(
index
)
{
index
=
parseInt
(
index
||
0
);
//boxInner.scrollTop = itemHeight * index;
aniScrollTop
(
boxInner
.
scrollTop
,
itemHeight
*
index
,
100
);
};
box
.
getSelectedElement
=
function
()
{
var
index
=
box
.
getSelectedIndex
();
return
$
(
'
li
'
,
ul
)[
index
];
};
};
box
.
getSelectedItem
=
function
()
{
self
.
list
.
innerHTML
=
buffer
.
join
(
''
);
var
itemElement
=
box
.
getSelectedElement
();
//self._scrollEndHandle();
if
(
!
itemElement
)
return
null
;
if
(
self
.
_scrollerApi
&&
self
.
_scrollerApi
.
refresh
)
{
self
.
_scrollerApi
.
refresh
();
}
self
.
_handleHighlight
();
self
.
_triggerChange
();
},
getItems
:
function
()
{
var
self
=
this
;
var
items
=
[];
var
itemElements
=
$
(
'
li
'
,
self
.
list
);
for
(
index
in
itemElements
)
{
var
itemElement
=
itemElements
[
index
];
var
itemJson
=
itemElement
.
getAttribute
(
'
data-item
'
);
var
itemJson
=
itemElement
.
getAttribute
(
'
data-item
'
);
return
itemJson
?
JSON
.
parse
(
itemJson
)
:
{
items
.
push
(
itemJson
?
JSON
.
parse
(
itemJson
)
:
{
text
:
itemElement
.
innerText
,
text
:
itemElement
.
innerText
,
value
:
itemElement
.
getAttribute
(
'
data-value
'
)
value
:
itemElement
.
getAttribute
(
'
data-value
'
)
};
});
};
}
box
.
setItems
=
function
(
items
)
{
return
items
;
var
buffer
=
[];
},
for
(
index
in
items
)
{
getSelectedValue
:
function
()
{
var
item
=
items
[
index
]
||
{
var
self
=
this
;
text
:
'
null
'
,
var
item
=
self
.
getSelectedItem
();
value
:
'
null
'
+
index
if
(
!
item
)
return
null
;
};
return
item
.
value
;
var
itemJson
=
JSON
.
stringify
(
item
);
},
buffer
.
push
(
"
<li data-value='
"
+
item
.
value
+
"
' data-item='
"
+
itemJson
+
"
'>
"
+
item
.
text
+
"
</li>
"
);
getSelectedText
:
function
()
{
};
var
self
=
this
;
ul
.
innerHTML
=
buffer
.
join
(
''
);
var
item
=
self
.
getSelectedItem
();
scrollEnd
();
if
(
!
item
)
return
null
;
};
return
item
.
text
;
box
.
getItems
=
function
()
{
},
var
items
=
[];
setSelectedValue
:
function
(
value
,
noAni
)
{
var
itemElements
=
$
(
'
li
'
,
ul
);
var
self
=
this
;
for
(
index
in
itemElements
)
{
var
itemElements
=
$
(
'
li
'
,
self
.
list
);
var
itemElement
=
itemElements
[
index
];
for
(
index
in
itemElements
)
{
var
itemJson
=
itemElement
.
getAttribute
(
'
data-item
'
);
var
itemElement
=
itemElements
[
index
];
items
.
push
(
itemJson
?
JSON
.
parse
(
itemJson
)
:
{
if
(
!
itemElement
||
!
itemElement
.
getAttribute
)
{
text
:
itemElement
.
innerText
,
continue
;
value
:
itemElement
.
getAttribute
(
'
data-value
'
)
});
}
}
return
items
;
if
(
itemElement
.
getAttribute
(
'
data-value
'
)
==
value
)
{
};
self
.
setSelectedIndex
(
index
,
noAni
);
box
.
getSelectedValue
=
function
()
{
return
;
var
item
=
box
.
getSelectedItem
();
}
if
(
!
item
)
return
null
;
}
return
item
.
value
;
},
};
_applyToBox
:
function
()
{
box
.
getSelectedText
=
function
()
{
var
self
=
this
;
var
item
=
box
.
getSelectedItem
();
var
memberArray
=
[
if
(
!
item
)
return
null
;
"
getSelectedIndex
"
,
return
item
.
text
;
"
setSelectedIndex
"
,
};
"
getSelectedElement
"
,
box
.
setSelectedValue
=
function
(
value
)
{
"
getSelectedItem
"
,
var
itemElements
=
$
(
'
li
'
,
ul
);
"
setItems
"
,
for
(
index
in
itemElements
)
{
"
getItems
"
,
var
itemElement
=
itemElements
[
index
];
"
getSelectedValue
"
,
if
(
!
itemElement
||
!
itemElement
.
getAttribute
)
{
"
getSelectedText
"
,
continue
;
"
setSelectedValue
"
}
];
if
(
itemElement
.
getAttribute
(
'
data-value
'
)
==
value
)
{
var
_clone
=
function
(
name
)
{
box
.
setSelectedIndex
(
index
);
if
(
typeof
self
[
name
]
===
'
function
'
)
{
return
;
self
.
box
[
name
]
=
function
()
{
}
return
self
[
name
].
apply
(
self
,
arguments
);
};
}
else
{
self
.
box
[
name
]
=
self
[
name
];
}
}
};
};
for
(
var
i
in
memberArray
)
{
var
name
=
memberArray
[
i
];
_clone
(
name
);
}
}
});
//添加 locker 插件
$
.
fn
.
listpicker
=
function
(
options
)
{
//遍历选择的元素
this
.
each
(
function
(
i
,
element
)
{
if
(
options
)
{
new
ListPicker
(
element
,
options
);
}
else
{
var
optionsText
=
element
.
getAttribute
(
'
data-listpicker-options
'
);
var
options
=
optionsText
?
JSON
.
parse
(
optionsText
)
:
{};
options
.
enabledH5
=
element
.
getAttribute
(
'
data-listpicker-enabledh5
'
)
||
options
.
enabledH5
;
options
.
fixedDur
=
element
.
getAttribute
(
'
data-listpicker-fixddur
'
)
||
options
.
fixedDur
;
new
ListPicker
(
element
,
options
);
}
});
});
}
return
this
;
};
//auto apply
//auto apply
$
.
ready
(
function
()
{
$
.
ready
(
function
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment