1

優れた jQuery の表示/非表示機能が動作しています。問題は、URL を直接入力してリンクを開くと、リンクがうまく機能しないことです。すべての要素を一度に表示できます。

表示/非表示機能でリンクを使用する方法はありますが、ブラウザのアドレスバーに直接入力したときにリンクが開かないようにする方法はありますか?

これが私のコードです:

jQuery

$(document).ready(function() {

    $('#nav li a').first().addClass('blue');

    $('#nav li a').click(function(){

    $('#nav li a').first().removeClass('blue');
    $('#nav li a').removeClass('blue');
    $(this).addClass('blue');

    var toLoad = $(this).attr('href')+'#content';  
    $('#content').hide(0,loadContent);  
    $('#load').remove();  
    $('#wrapper').append('<span id="load">LOADING...</span>');  
    $('#load').fadeIn('normal');  
    //window.location.hash = //$(this).attr('href').substr(0,$(this).attr('href').length-0);  
    function loadContent() {  
        $('#conent').load(toLoad,'',showNewContent())  
    }  
    function showNewContent() {  
        $('#content').show(0,hideLoader());  
    }  
    function hideLoader() {  
        $('#load').fadeOut('normal');  
    }  
    return false;  
    });
});  

HTML

<div id="leftcol">

<div id="menu">
<ul id="nav">
<li><a href="/option1">Option 1</a></li><br />
<li><a href="/option2">Option 2</a></li><br />
<li><a href="/option3">Option 3</a></li><br />
</ul>
</div>
</div>

<div id="content">
<div>
4

1 に答える 1

2

リンクhrefが URL でない場合は、おそらく使用する必要があります#option1

イベントを使用しhashchangeて表示/非表示機能を呼び出すことができますか?

$(window).bind('hashchange', function() {
    showHideFunction(window.location.hash);
});

リンクをクリックすると、ハッシュが変更され、関数が呼び出されます。

誰かがアドレスhttp://domain.com/#option1
を入力すると、onload 関数でこのようなハッシュを取得できます。

var hash = window.location.hash;
if(hash) {
    showHideFunction(hash);
}
于 2012-05-25T23:01:32.787 に答える