jquery不同版本导致的checkbox设置了属性,但是没有选中效果
由于本人好久不做B/S了,今天同学问我个问题才发现了jquery版本还是存在差异的,今天写的就是关于获取checkbox属性的方式(可能不应该叫属性了其实,后面就知道了)。
看下面的代码截图吧
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title> <script type="text/javascript" src="jquery-1.11.2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".l-checkbox").click(function(){
var c=$("#box").attr("checked");
alert(c);
if(c)
{
$(this).parent().children("input").removeAttr("checked");
}
else{
$(this).parent().children("input").attr("checked","checked");
}
});
});
</script> <style>
/**
* 隐藏默认的checkbox
*/
input[type=checkbox]
{
visibility: hidden;
}
.item_checkbox
{
margin-top: 30px;
margin-left: 30px;
margin-right: 30px;
width: 30px;
height: 30px;
background: #ddd;
border-radius: 100%;
position: relative;
border: 1px solid #b9b9b9;
}
.item_checkbox label
{
display: block;
width: 30px;
height: 30px;
border-radius: 100px;
cursor: pointer;
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
background: #FFFFFF;
}
.item_checkbox input[type=checkbox]:checked + label
{
background: red;
border-radius: 100%;
}
</style>
</head>
<body>
<div class="item_checkbox fl">
<input type="checkbox" value="1" id="box" name="" />
<label class="l-checkbox" value="ssss">
</label>
</div>
</body>
</html>
最初是通过$("#box").attr("checked");方式获取值,并且肯定会通过$("#box").attr("checked","checked");方式设置它的值。OK,打开页面第一次选中、取消很完美实现效果。然后到了第二次的时候有一点不完美,但是比较神奇。因为通过调试F12,属性已经设置到了控件上面,但是就是没有选中的效果。
进入到正题了,开始解决神奇的问题。
我在网上查资料看到了下面这段话,于是就明白了所谓的jquery版本不同造成的个别差异:
看完都会解决问题了,所以我就不多说了。通过$("#box").prop("checked")获取到属性的值,通过$("input").prop({checked:false}); 方式进行设置值就好了。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="css/jquery.dialogbox.css" />
<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="js/jquery.dialogBox.js" ></script>
<script type="text/javascript">
$(function(){
$(".l-checkbox").click(function(){
if($("#box").prop("checked"))
{
$("input").prop({checked:false});
}
else{
$("input").prop({checked:true});
}
});
});
</script> <style>
/**
* 隐藏默认的checkbox
*/
input[type=checkbox]
{
visibility: hidden;
}
.item_checkbox
{
margin-top: 30px;
margin-left: 30px;
margin-right: 30px;
width: 30px;
height: 30px;
background: #ddd;
border-radius: 100%;
position: relative;
border: 1px solid #b9b9b9;
}
.item_checkbox label
{
display: block;
width: 30px;
height: 30px;
border-radius: 100px;
cursor: pointer;
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
background: #FFFFFF;
}
.item_checkbox input[type=checkbox]:checked + label
{
background: red;
border-radius: 100%;
}
</style>
</head>
<body>
<div class="item_checkbox fl">
<input type="checkbox" value="1" name="11" id="box" tag="ceshi"/>
<label class="l-checkbox">
</label>
</div>
<div >
<button class="logpwd_show_bt">只能使用1.9以上版本</button>
</div> <div id="simple-dialogBox" class="dialogBox"> </div>
<style type="text/css">
.dialog-box{
width: 100%;
} .dialog-box-container
{
width: 90%;
} .dialog-box-content
{
text-align: center;
background: #84c225; }
.dialog-box-content
{
color: #FFFFFF;
font-size: 0.18rem;
}
</style>
<script type="text/javascript">
$(function () {
$('.logpwd_show_bt').click(function(){
$('#simple-dialogBox').dialogBox({
autoHide: true,
time: 2000,
hasClose: true,
hasMask: true,
content: '新密码设置成功'
});
})
})
</script>
</body>
</html>
当前这段代码使用的jquery版本是11的,因为要支持html5.希望大家提更多的解决方案,交流。
jquery不同版本导致的checkbox设置了属性,但是没有选中效果的更多相关文章
- checkbox设置复选框的只读效果不让用户勾选
在Web开发中,有时候需要显示一些复选框(checkbox),表明这个地方是可以进行勾选操作的,但是有时候是只想告知用户"这个地方是可以进行勾选操作的"而不想让用户在此处勾选(比如 ...
- jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
转载:https://blog.csdn.net/chenchunlin526/article/details/77448168 jQuery操作复选框checkbox技巧总结 --- 设置选中.取消 ...
- Jquery常用radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置
获取一组radio被选中项的值:var item = $('input[name=items][checked]').val(); 获取select被选中项的文本:var item = $(" ...
- jquery各版本区别
jquery版本区别: 1.3一般功能够 1.4.2一般功能够而且稳定 1.7+比较新特性 2不支持老IE 兼容的话最好选 1.x.稳定性就用1.7或者1.4,其中1.4的体积相对 ...
- jQuery判断复选框checkbox的选中状态
通过jQuery设置复选框为选中状态 复选框 <input type="checkbox"/> 错误代码: $("input").attr(&quo ...
- 点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态
给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find.find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给c ...
- jQuery radio取值,checkbox取值,select取值
语法解释: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkTex ...
- jQuery设置disabled属性
先比较下readOnly和disabled: readOnly 只针对input(text/ password)和textarea有效: disabled 对于所有的表单元素都有效,包括select, ...
- jquery操作select(取值,设置选中)
最近工作中总出现select 和 option问题,整理一下,内容大部分源于网络资料 一.基础取值问题 例如<select class="selector"></ ...
随机推荐
- JAVA并发编程:相关概念及VOLATILE关键字解析
一.内存模型的相关概念 由于计算机在执行程序时都是在CPU中运行,临时数据存在主存即物理内存,数据的读取和写入都要和内存交互,CPU的运行速度远远快于内存,会大大降低程序执行的速度,于是就有了高速缓存 ...
- Bootstrap历练实例:默认的面板(Panels)
Bootstrap 面板(Panels) 本章将讲解 Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素 ...
- cocos2dx 字体描边遇到的描边缺失的bug
在cocos中,设置字体描边可以用enableOutline(cc.c4b(30, 10, 0, 255), 2)函数设置,第一个参数是字体颜色,第二个参数是描边轮廓大小,单位是2个像素, 我在使用过 ...
- 使用lua实现Spine动画的预加载
创建spine动画有两种方法,分别是createwithfile和createwithdata. createWithFile是通过加载动作数据马上进行创建,如果spine动画中的json文件大小超过 ...
- 哈希表(Hash Table)/散列表(Key-Value)
目录 1. 哈希表的基本思想 2. 哈希表的相关基本概念 1.概念: 2.哈希表和哈希函数的标准定义: 1)冲突: 2)安全避免冲突的条件: 3)冲突不可能完全避免 4)影响冲突的因素 3. 哈希表的 ...
- C语言程序运行
vs2013编辑器 c程序的运行 一.启动Microsoft Visual C++ 2013版.新建项目 . 1. 文件——> 新建——> 项目. 2. 确定之后 弹出 ...
- HTTP-常用配置
前言 这篇主要介绍HTTP服务程序环境 可能有一些介绍不到,博主能力有限,欢迎大神来纠正改进 HTTP协议从http/0.9到如今的http/2.0中间发生了很大的改变,现在主流的事http/1.1 ...
- 拓展jQuery的serialize(),将form表单转化为json对象
jQuery 的 serialize() 方法经常会报 Uncaught TypeError: JSON.serializeObject is not a function 的错误, 原装的方法真的一 ...
- 计蒜客 The 2018 ACM-ICPC Chinese Collegiate Programming Contest Rolling The Polygon
include <iostream> #include <cstdio> #include <cstring> #include <string> #i ...
- poj 1742 多重背包问题 dp算法
题意:硬币分别有 A1.....An种,每种各有C1......Cn个,问组成小于m的有多少种 思路:多重背包问题 dp[i][j]表示用前i种硬币组成j最多剩下多少个 dp=-1的表示凑不齐 dp ...