2014-12-07 63 views
1

我有5(DIV)■所有隐藏和我使用。点击功能来隐藏其中的4个,并显示1 ..(1为每个按钮) 例如: 的HTML:如何使用(location.hash)和(.trigger)导航?

<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); 
}); 

当我点击 我用的location.hash和B2的URL更改为>家#DIV2 .trigger 所以当用户在URL输入家#DIV2 jQuery的活跃b1.click

if(location.hash == "#div2"){ 
    $("#b1").trigger("click"); 
} 

logicly应该隐藏DIV1和显示DIV2 但它说明不了什么,甚至当我点击B1或B2手动..

什么,我做错了什么?!

+0

向我们展示你点击 – dandavis 2014-12-07 00:38:14

+0

在哪里什么码ID为#b1和#b2的元素?你的HTML元素实际上有id#div1和#div2 – Rooster 2014-12-07 00:38:22

+1

,向我们展示整个代码,你可能过早地绑定了按钮(jQuery没有警告/抱怨) – dandavis 2014-12-07 00:39:30

回答

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> 
+0

这是我的问题“window.location.hash”我的地址是“location.hash” – Zahema 2014-12-15 18:20:03

+0

LOL和if语句都在.click函数之上 – Zahema 2014-12-16 21:05:44