用JS实现:连续点击一个链接来隐藏显示div

JSP代码:
<a href="" id="xy" class="login_xy"onclick="xy();">《用户协议》</a>

<div style="padding-left:80px;display:none " id="xy1">123</div>
JS代码:
function xy(){
if($('#xy1').style.display=""){
$('#xy1').style.display="none";
}
if($('#xy1').style.display="none"){
$('#xy1').style.display="";
}

}
求大神指点下,我这样写为什么不行?

第1个回答  2013-12-06
你这里不是JQuery为什么用"#"?你要想隐藏的的话也只需一行代码
document.getElementById('xy1').style.display="none";
就可以了,连续点击是双击的意思吧?你onclick是单击的意思,双击的ondblclick,而且单击的按钮不能用a标签,建议用button追问

我的意思是,点击一下这个链接,显示div,再点一下隐藏,再点一下又显示

追答

用JQ还是JS?JQ就用toggle可以了,JS用switch,而且你这代码也的确有问题

给你个JQ的写法

<button id="xy" class="login_xy">《用户协议》</button>
<div style="padding-left:80px;display:block;" id="xy1">123</div>

$(function(){
$('#xy').dblclick(function(){
$('#xy1').toggle();
})
})

第2个回答  2013-12-06
function xy(){
$("#xy1").toggle();

}这样就可以了
第3个回答  2013-12-06
if($('#xy1').style.display="")
这里是 == 不是 =追问

改成==了,还是不行啊。。。点击链接还是没反应。。

追答<a id="xy" class="login_xy" onclick="xy()">《用户协议》</a>
<div style="padding-left:80px;display:none; " id="xy1">123</div>

function xy(){
var aa = document.getElementById('xy1');
if(aa.style.display == ""){
aa.style.display = "none";
}
if(aa.style.display == "none"){
aa.style.display="";
}

}

1,你的div 中的display:none少了‘;’

2,下面的我直接改了,手上没有jquery库

或者直接

function xy(){

    $('#xy1').toggle();

}

第4个回答  2013-12-06
function xy(){

$("#xy1").toggle();



toggle(); 是jquery封装的方法 点击 显示和隐藏追问

照你这样写了,点击一下链接,div一闪而过,出现了马上又消失了啊
我要做的是,点击一下这个链接,显示div,再点一下隐藏,再点一下又显示

追答

这样写就可以 把你代码粘上来 你写的有问题

追问

JSP代码:
《用户协议》

123

追答

sdfsdf
用超链接 调用方法 正确是这样 如果你非要用 onclick调用 就得把href链接到一个空值 下面那样写

sdfsdf
是你超链接 调用方法的问题

本回答被提问者采纳
相似回答