0

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

クリック後に「テキスト」divが非表示になることはありません。「www.mysite.com/#hide」に直接アクセスすると機能します。

4

2 に答える 2

2

href = "#hide"のリンクを選択しますか?attribute-equalsセレクターを使用します。

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

リンク自体はローカルアンカー(同じページ上の意味)として扱われます。これにより、ブラウザがページをリロードすることはないため、スクリプトは実行されません。最新のブラウザでは、hasChangeイベントを介してこれらの変更をキャプチャできます。

于 2013-02-02T20:34:08.593 に答える
0

クリック機能でコールバックしていますか?例えば

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

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

.live()関数が減価償却されていることに気づきました...しかし悪い習慣:)

于 2013-02-02T19:54:55.270 に答える