这是漫长的一天,我怀疑这助长了这个看似简单的问题。
我有一个汉堡菜单,需要打开#url
,它需要在以下菜单之间进行切换:
Open = #open
Close = #close
我的jquery
代码如下:
$('.menu').click(function () {
$(this).attr("href","#close");
});
我的html
看起来像这样:
<a href="#open" class="menu">
<b></b>
<b></b>
<b></b>
<span>Menu</span>
</a>
我可以很好地打开菜单,也可以将其关闭,但是,一旦关闭菜单,由于href
仍显示为#close
,因此无法再次打开菜单。因此,我想知道如何切换它,以便无论url
还是href
都相反?
我非常感谢您。
答案 0 :(得分:0)
我通常使用<a href="#open">
,但也使用window.location.hash
。处理此问题的一种好方法是使用以下代码来执行操作:
$(window).on('hashchange', function() {
});
我将我的哈希字符串与HTTP GET字符串完全一样,手动解析配对,然后将其发送给AJAX调用。这是让AJAX播放直接链接和浏览器历史记录的好方法。
答案 1 :(得分:0)
仅在每次单击菜单并更改其值时检查href
属性值是什么?
这应该有效:
$('.menu').click(function() {
if($(this).attr("href") == "#open") {
$(this).attr("href", "#close");
} else {
$(this).attr("href", "#open");
}
});
答案 2 :(得分:0)
以下解决方案适用于您的情况。
$('.menu').click(function(e) {
var hash = (e.currentTarget.hash === "#close") ? '#open' : '#close'
$(this).attr("href", hash);
});