点击哈希链接后,jQuery隐藏div

时间:2013-02-02 19:51:50

标签: jquery html hash hide

HTML:

<div id="text" class="text">
   Hello World! <a href="#hide">CLOSE</a>
</div>

脚本:

$(function() {
    if ( document.location.href.indexOf('#hide') > -1 ) {
      $('#text').fadeOut('slow');
    }
});

单击后不隐藏“text”div。如果我直接去“www.mysite.com/#hide”,那就行了。

2 个答案:

答案 0 :(得分:2)

您想要选择带有href =“#hide”的链接?使用attribute-equals选择器:

$(function() {
    $("a[href='#hide']").click(function() {  $('#text').fadeOut('slow');});
});

链接本身将被视为本地锚点(指在同一页面上)。这不会导致浏览器重新加载页面,因此您的脚本将不会被执行。在现代浏览器中,您可以通过hasChange事件捕获这些更改。

答案 1 :(得分:0)

你是否在点击功能上回拨它? E.g。

var hashHide = function() {
    if ( document.location.href.indexOf('#hide') > -1 ) {
      $('#text').fadeOut('slow');
    }
};

$('itemClicked').live('click', function(){hashHide()}));

我意识到.live()函数已被折旧......但是坏的habbits :)