zoukankan      html  css  js  c++  java
  • 我封装的第一个组件,单选按钮

    在用别人的组件的时候,总是感觉东西太大,用起来还得查看,别人是怎么写的,如何用,所以自己也开始学习一下封装一个组件:在这里封装了一个自定义的单选框:
    html代码 :

    <form id="form1" action="http://www.zhinengshe.com/" method="get">
    	性别:
    	<input type="radio" name="sex" value="男" />男
    	<input type="radio" name="sex" value="女" />女
    	<br />
    	<input type="submit" />
    </form>
    

     css 部分:

    .my_radio_off{18px; height:18px; display:inline-block; background: url(radio.gif) no-repeat 0 0;}
    .my_radio_on{18px; height:18px; display:inline-block; background: url(radio.gif) no-repeat 0 -18px;}
    

     JS部分,在写之前,我先写了一个ready封装,好用ready,其实大家在做的时候,可以先把ready封好,回头直接调用,在这里把这个JS文件保存为:radio.js

    function $(fn){
    	if(document.addEventListener){
    		document.addEventListener('DOMContentLoaded',fn,false);
    	}else{
    		document.onreadystatechange=function(){
    			fn();
    		}
    	}
    };
    
    
    (function(){
    
    	var added=false;
    
    	window.myRadio=function (name){
    		var aSe=document.getElementsByName(name);
    		var aSpan=[];
    
    		for(var i=0; i<aSe.length; i++){
    			var oSpan=document.createElement('span');
    			oSpan.className='my_radio_off';
    			aSpan.push(oSpan);
    
    			aSe[i].parentNode.insertBefore(oSpan,aSe[i]);
    			aSe[i].style.display='none';
    			(function(index){
    				oSpan.onclick=function(){
    					for(var i=0; i<aSpan.length; i++){
    						aSpan[i].className='my_radio_off';
    					}
    					this.className='my_radio_on';
    					aSe[index].checked=true;
    				}
    			})(i);
    		}
    	};
    
    	if(added==true)return;
    	added=true;
    
    	var oLink=document.createElement('link');
    	oLink.href='radio.css';
    	oLink.rel='stylesheet';
    	var oHead=document.getElementsByTagName('head')[0];
    	oHead.appendChild(oLink);
    
    })()
    

      调用:

    <script src="radio.js"></script>
    <script>
    $(function(){
    	myRadio('sex');
    })
    </script>
    

      

     

    如果问题,欢迎大家及时指点,一同交流,共同提高
  • 相关阅读:
    node03- FS内置模块
    node03- CommonJS
    删除当前目录下的所有文件夹和文件
    解决 idea 项目中Error:java: 无效的标记
    Raid0,Raid1,Raid5,Raid10 总结
    Tcpdump命令
    ClassNotFoundException 和 NoClassDefFoundError 区别
    Dart-List里面常用的属性和方法
    CSS实现等分布局的4种方式
    iOS项目添加CocoaPods
  • 原文地址:https://www.cnblogs.com/wujidns/p/4120118.html
Copyright © 2011-2022 走看看