JQuery统一复写美化项目中所有radio单选按钮样式
老项目要升级改版,对于分散在各页面的样式不好处理,怕有遗漏,尤其是优化input表单,修改其默认样式,接下来,我将给大家分享一下,我在项目中的总结。
效果

上代码:
1.简单搞一搞 CSS,此处代码有折叠,Click Me~
.custom-radio {
float: left;
}
.custom-radio input {
position: absolute;
left: -9999px;
vertical-align: middle;
}
.custom-radio label {
cursor: pointer;
padding-right: 20px;
line-height: 30px;
padding-left: 25px;
position: relative;
display: inline-block;
}
.custom-radio label:hover {
color: #FF6200;
}
.custom-radio label::after {
content: '';
display: block;
position: absolute;
top: 6px;
left: 0;
width: 16px;
height: 16px;
outline: 0;
border: 1px solid #D5D5D5;
border-radius: 50%;
}
.custom-radio label.checked::after {
border: 6px solid #FF6200;
width: 6px;
height: 6px;
}
.custom-radio label,
.custom-radio label.checked {
border: none;
background: none;
}
2.简单搞一搞 HTML, 男男女女
<input type="radio" name="yesOrNo" id="yes" checked />
<label for="yes">是</label>
<input type="radio" name="yesOrNo" id="no" />
<label for="no">否</label>
3.开整 ~~~~
首先分析一下实现思路:
定义一个JQuery的扩展方法,页面加载完毕,input radio循环调用
创建一个新的Div,并设置类名,用于定义css
使用输入的ID得到相关的标签,将input radio及对应的id的label,放进上述Div中
绑定自定义事件,触发它,绑定点击,焦点等事件
<script src="./jquery-1.11.1.min.js"></script>
<script>
$.fn.customInput = function () {
return $(this).each(function () {
if ($(this).is('[type=radio]')) {
var input = $(this);
var label = $('label[for=' + input.attr('id') + ']');
label.add(input).wrapAll('<div class="custom-' + input.attr('type') + '"></div>');
label.hover = function () {
$(this).addClass('hover');
};
input.bind('updateState', function () {
input.is(':checked') ? label.addClass('checked') : label.removeClass('checked');
})
.click(function () {
$('input[name=' + $(this).attr('name') + ']').trigger('updateState');
})
.focus(function () {
// 自定义处理逻辑
label.addClass('focus');
if (input.is(':checked')) $(this).addClass('checkedFocus');
})
.blur(function () {
// 自定义处理逻辑
label.removeClass('focus checkedFocus');
});
}
});
};
$('input:radio').each(function () {
var $this = $(this);
$this.customInput(); //初始化单选框
});
</script>
JQuery统一复写美化项目中所有radio单选按钮样式的更多相关文章
- ASP.NET MVC jQuery 树插件在项目中使用方法(一)
jsTree是一个 基于jQuery的Tree控件.支持XML,JSON,Html三种数据源.提供创建,重命名,移动,删除,拖"放节点操作.可以自己自定义创建,删 除,嵌套,重命名,选择节点 ...
- Jquery和Javascript 实际项目中写法基础-弹出窗和弹出层 (4)
一.实际项目中有很多如下界面效果. 二.该效果可以归结为弹出窗或者弹出层来实现的,为什么这么说?看如下代码: <!DOCTYPE html> <html> & ...
- Jquery和Javascript 实际项目中写法基础 (1)
一.JS 是什么,jquery 是什么 就不说明了,直接说一般使用是怎么样的 <!DOCTYPE html> <html> <head> <meta cha ...
- react项目中对dom元素样式修改的另一种方法以及将组件插入到node节点中
在项目中,以前如果遇到对dom元素的操作都是直接获取dom元素,比如说: 但是如果修改的样式比较多的话,不如直接"切换"dom元素,如下例子: 这样会节省一些性能.因为操作dom的 ...
- Jquery和Javascript 实际项目中写法基础-闭包 (2)
一.什么是闭包? 概念性的我就不去百度了,感兴趣的可以自己去搜下,我自己的理解,闭包就是一个封装的包,相当于类的概念,把乱七八糟的的东西封装到一起,然后统一使用一个对象来调用,实现代码部分对外开放,部 ...
- jQuery Validate验证(项目中使用的)
大致结构是: <script type="text/javascript" src="<%=path %>/js/jquery-1.9.1.min.js ...
- Jquery和Javascript 实际项目中写法基础-ajax和json (3)
一.什么是JSON数据? 一种轻量级的数据交换格式.实际中知道如何使用即可. 软件开发我认为就是一个会用,然后知其原理的过程. 例子如下: <!DOCTYPE html> <html ...
- jQuery动态的给页面中添加一条样式表的链接
HTML部分: <input type="button" value="单击" onclick="getbody()" /> & ...
- jquery循环遍历radio单选按钮,并设置选中状态
背景:自己在做项目过程中遇到的问题,现在记录一下. 需求:在ajax获取后台数据的之后,需要根据获取的数据对页面中的radio单选按钮进行选中状态设置 因为自身js功底欠佳,所以耽误了点时间,现在把方 ...
随机推荐
- HotSpot类模型之InstanceKlass
上一篇 HotSpot源码分析之类模型 介绍了类模型的基础类Klass的重要属性及方法,这一篇介绍一下InstanceKlass及InstanceKlass的子类. 1.InstanceKlass类 ...
- [i春秋]“百度杯”CTF比赛 十月场-Hash
前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash 如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...
- 直面秋招!非科班生背水一战,最终拿下阿里等大厂offer!
前言 2020年已经接近到9月份了,很多粉丝朋友都对金九银十雀雀欲试了吧!也有很多朋友向我求教经验,因为我自己工作相对于稳定,在这里给大家分享一个粉丝朋友的经历,他作为一个曾经的菜鸡面试者,在不断的失 ...
- 使用iOS 设备管理器 iMazing导出苹果设备中的录音文件
iMazing是一款功能强大的苹果设备管理软件,能为用户提供便捷的录音文件导出功能.用户可以直接将录音文件从苹果设备中导出,接下来,就让小编为大家演示一下如何操作吧. 图1:iMazing界面 1.打 ...
- Vegas技巧分享,如何实现5.1立体声道
Vegas Pro 15除了有各种好用的功能之外,还可以使用此软件制作5.1立体声道的音乐.如果你家里有多个音箱,那么你再也不用担心找不到5.1声道的音乐了,Vegas完全可以帮你实现. 打开简体中文 ...
- 前后端分离之前端vue
npm install --global vue-clivue init webpack my-project cd my-project npm install npm run dev ...
- vulnhub: DC 4
信息收集: yurang@kali:~$ nmap -sn 192.168.76.1/24 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-04 ...
- python基础之操作列表
遍历元素 magicians = ['alice','david','carolina'] for magician in magicians: print(magician) magicians = ...
- Linux 系统故障排查,这里看过来
来源:https://www.jianshu.com/p/0bbac570fa4c 导读 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源.这时候就需要登录服务器进一步深入分析问题的 ...
- 使用wapiti进网站进行安全性测试
1.安装wapiti --在命令终端输入 pip install wapiti3 (因为这个结合python使用,所以安装的版本要跟python兼容,因为我的python是3.6版本,所以安装的是wa ...