js笔记:模拟下拉列表
html部分
- <div id="select">
- <div id="selectHead">First</div>
- <ul id="csList">
- <li class="cs">First</li>
- <li>Seconde</li>
- <li>Third</li>
- </ul>
- </div>
css部分
- *{padding:0;margin:0;}
- body{font:12px Arial;}
- #select{width:100px;}
- #select #selectHead{border:1px solid #ccc;line-height:20px;cursor:pointer;}
- #select ul{border:1px solid #ccc;border-top:0;display:none;}
- #select ul li{line-height:20px;cursor:default;}
- #select .onhover{background:#0069ca;color:#fff;}
javascript部分
- <script type="text/javascript">
- function select(){
- var selectHead = document.getElementById("selectHead");
- var csList = document.getElementById("csList");
- selectHead.onclick = function(){
- if (csList.style.display != "block") {
- csList.style.display = "block";
- }
- else {
- csList.style.display = "none";
- }
- }
- var optionList = csList.getElementsByTagName("li");
- for(var i = 0;i < optionList.length;i++){
- optionList[i].onclick = function(event){
- if (!event) {
- event = window.event;
- }
- el = event.target || event.srcElement;
- var csContent = el.innerHTML;
- selectHead.innerHTML = csContent;
- csList.style.display = "none";
- }
- optionList[i].onmouseover = function(event){
- if (!event) {
- event = window.event;
- }
- el = event.target || event.srcElement;
- addCss(el,"onhover");
- }
- optionList[i].onmouseout = function(event){
- if (!event) {
- event = window.event;
- }
- el = event.target || event.srcElement;
- removeCss(el,"onhover");
- }
- }
- }
- function addCss(element,cssName){
- var element,cssName;
- if (!element.className || element.className == cssName){
- element.className = cssName;
- }
- else{
- element.className = element.className + " " + cssName;
- }
- }
- function removeCss(element,cssName){
- var element,cssName;
- var oldCss = element.className;
- var cssList = oldCss.split(" ");
- for(var i = 0;i < cssList.length;i++){
- if (cssList[i] == cssName) {
- cssList[i] = "";
- break;
- }
- }
- element.className = cssList.join(" ");
- }
- window.onload = select;
- </script>