由于本人好久不做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版本不同造成的个别差异:

jquery不同版本导致的checkbox设置了属性,但是没有选中效果-LMLPHP

看完都会解决问题了,所以我就不多说了。通过$("#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.希望大家提更多的解决方案,交流。

05-14 13:52