有时候我们会用jq写一些特效,jq在控制DOM方面是非常方便的,虽然jq在最近几年没什么进展。
下面就是一个实例图:
我们可以用jq这样实现:
//html
<div id="dd0" alt="0" onclick="changeok('0')">
<img src="images/j.png" alt="" class="j1" />
<img src="images/d.png" alt="" class="true1" />
</div>
//js
function changeok(a){
var yuans=$('#dd'+a);
var isok=yuans.attr('alt');
if(isok==0){
yuans.attr('alt','1').children(".j1").hide();
yuans.children(".true1").show()
}else{
yuans.attr('alt','0').children(".true1").hide();
yuans.children(".j1").show();
}
}
这里是利用了给每个元素加一个id,这样他们就是独立的一个个体。然后就是利用默认属性alt等于零。让它默认显示没被选中。
如果写一个如上的自定义radio按钮怎么办?
也可以用这样的方法:
<ul class="user ovf">
<li>
<img src="images/m.png" alt="">
<div id="dd0" alt="0" onclick="changeok('0')" class="slii">
<img src="images/k.png" alt="" class="k">
<img src="images/t.png" alt="" class="t">
<p>男宝宝</p>
</div>
</li>
<li>
<img src="images/g.png" alt="">
<div id="dd1" alt="0" onclick="changeok('1')" class="slii">
<img src="images/k.png" alt="" class="k">
<img src="images/t.png" alt="" class="t">
<p>女宝宝</p>
</div>
</li>
</ul>
function changeok(a){
var yuans=$('#dd'+a);
var isok=yuans.attr('alt');
yuans.parent().siblings().children(".slii").attr('alt','0');
if(isok==0){
yuans.attr('alt','1').children(".k").hide();
yuans.parent().siblings().children(".slii").children(".t").hide();
yuans.parent().siblings().children(".slii").children(".k").show();
yuans.children(".t").show()
}else{
yuans.attr('alt','0').children(".t").hide();
yuans.parent().siblings().children(".slii").children(".k").hide();
yuans.parent().siblings().children(".slii").children(".t").show();
yuans.children(".k").show();
}
}
加上几行代码就改成点击一个,另一个会消除这种样式。类似radio按钮。