2013-02-02 108 views
0

HTML:散列鏈接後jQuery的隱藏的div被點擊

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

腳本:點擊後

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

這並不能掩蓋 「文本」 分區。如果我直接打開「www.mysite.com/#hide」tho,它會起作用。

回答

2

要選擇與HREF =「#隱藏」的鏈接?使用attribute-equals選擇:

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

鏈接本身將被視爲本地錨(在同一頁面上的手段)。這不會導致瀏覽器重新加載頁面,因此您的腳本將不會執行。在現代瀏覽器中,您可以通過hasChange事件捕獲這些更改。

+0

謝謝,效果很好。 – user2035638

0

您是否通過點擊功能調用它?例如。

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

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

我知道()函數的折舊.live ......但壞習慣所:)

+0

嗯..我不明白這一點。它不工作。 – user2035638

+0

以上是一個很明顯的例子''itemtClicked''將不得不改變......並且我已經調整了你的代碼,所以這是一個可回調的(是的,我構成了詞)函數。 – dev