我有5(div)s全部隐藏,我使用.click函数隐藏其中4个并显示1 ..(每个按钮1个) 例如 : html:
<div id="div1">hi<div>
<div id="div2">hello<div>
jquery:
$("#b1").click(function(){
$("#div1").hide(500);
$("#div2").show(500);
});
$("#b2").click(function(){
$("#div2").hide(500);
$("#div1").show(500);
});
当我点击b2时,网址更改为&gt;回家#DIV2 我使用了location.hash和.trigger 所以当用户在url中输入home#div2时,jquery激活b1.click
if(location.hash == "#div2"){
$("#b1").trigger("click");
}
逻辑上它应该隐藏div1并显示div2 但即使我手动点击b1或b2,它也没有显示任何内容。
我做错了什么?!
答案 0 :(得分:2)
您的问题似乎是由于div
代码未正确终止而造成的。我将它们更改为:(注意标记终止符中的正斜杠。)
<div id="div1">hi</div>
<div id="div2">hello</div>
这个完整的示例适用于Chrome:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" language="Javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#b1").click(function(){
$("#div1").hide(500);
$("#div2").show(500);
});
$("#b2").click(function(){
$("#div2").hide(500);
$("#div1").show(500);
});
if(window.location.hash == "#div2"){
$("#b1").trigger("click");
}
else if(window.location.hash == "#div1"){
$("#b2").trigger("click");
}
alert(window.location.hash);
});
</script>
</head>
<body>
<input type="button" id="b1" value="b1"></input>
<input type="button" id="b2" value="b2"></input>
<div id="div1">hi</div>
<div id="div2">hello</div>
</body>
</html>