我想隐藏&单击标签时显示div标签。 假设我有一个标签 -
<div id="Change"><a href="#">More</a></div>
我还有另一个div
<div id="toggle">some controls</div>
当我点击More link
时,它应显示我的div toggle
&amp;应该改变More to Less
&amp;当我点击Less
它应该hide my div toggle
&amp;再次text of <a> should be "More"
。
并且假设我在同一页面上有其他网页链接。然后,如果我重定向到其他页面&amp;回到上一页然后它应该保持标签的先前状态以及div切换。
如果我的页面包含任何将调用服务器端事件的按钮,那么在事件执行之后它应该保持与之前相同的状态。
怎么做?
感谢
答案 0 :(得分:1)
如果您希望浏览器“记住”“切换div”状态,请使用Cookie。 使用jquery和jquery cookie插件使您的代码更容易和更短。
这是你可以做的一个例子。
// on document ready
$(function(){
// read the cookie and make a decision
var toggle = $.cookie('toggle');
if(toggle && toggle == "toggle"){
$('div#toggle').animate({height:300},500);
$(this).text("Less");
}
$('div#change>a').click(function(){
if($(this).text() == "More"){
//if More then toggle the toggle div.
$('div#toggle').animate({height:300},500);
$(this).text("Less");
$.cookie('toggle','toggle');
}else{
$('div#toggle').animate({height:0},500);
$(this).text("More");
$.cookie('toggle',NULL);
}
});
})
祝你好运
答案 1 :(得分:0)
对于使用javascript的快速解决方案,您可以更改页面的哈希值:
<div id="Change"><a href="#" id="toggleButton" onclick="toggleButton();">More</a></div>
<script>
function toggleButton() {
if (document.getElementById("toggleButton").innerHTML === "More"){
document.getElementById("toggleButton").innerHTML = "Less";
window.location.hash = "Less";
}
else {
document.getElementById("toggleButton").innerHTML = "More";
window.location.hash = "More";
}
}
</script>
这会使页面网址看起来像http://mysite.com/webpage.aspx#More
然后,当页面加载时,您可以使用更多的javascript来查看页面哈希并根据需要将div设置为可见/不可见。
但这对于更复杂的页面不起作用。
另外,请记住在使用asp.net和javascript时 - asp.net服务器将更改具有runat=server
属性的元素的ID属性。这使得javascript与runat=server
元素一起使用变得困难。您可以通过为runat=server
元素提供ClientIdMode="Static"
属性来解决此问题。
答案 2 :(得分:0)
向toggle
div添加css显示属性,并在div $('.target').toggle();
的click eventhandler上使用Change
。您还可以将Change
的innerhtml从More更改为使用.html()
还要保持状态使用隐藏字段。
如果要使用toggle
,请确保将ref添加到jquery库。