0

タブにいくつかのデータがあるページがあります。リンクが別のページからクリックされたときにタブをオンにしてページをロードし、正しいタブを表示できるように関数を作成しようとしています。これは、実際のタブ変更機能を除いた以下のコードで動作しています。しかし、なんらかの理由で window.location..... を変数として使用しても、ページは一致する ID までスクロールダウンします。# の後に URL の文字列を取得する別の方法はありますか。または、この方法でそれを行うことはできますが、IDにジャンプする必要はありませんか? ありがとう

function loadTab(){

var linkToTab = window.location.hash.substr(1);
var linkClass = '.'+linkToTab

if(window.location.hash != '') {

        changeTabs(linkClass);
    }else{
        $('.companyLink:first').addClass('active');
        $('.companyBio:first').addClass('active');
        $('.companyBio:first').fadeIn();

    };

}
4

2 に答える 2

0

ハッシュ文字はアンカー用です。

ハッシュの代わりに疑問符を使用します。

<a href="index.html?tabname">

var linkToTab = window.location.search.substr(1);
var linkClass = '.'+linkToTab

if(window.location.search != '') {
于 2013-10-10T12:00:31.220 に答える
0

URLの#一部は、伝統的にアンカーに使用されます。あなたが見る「ジャンプ」は元の機能です。

HTML5 の履歴機能はまだ広くサポートされていないため、最新の Web サイトや Web アプリケーションでは履歴の作成に使用されます。

ジャンプを避けるにはevent.preventDefault、次のようにリンクに追加します。

<a href="#tab1" id="tab1handle">Tab1</a>

<script type="text/javascript">
  document.getElementById("tab1handle").onclick = function (event) {
    event.preventDefault();
  }
</script>

アンカーが定義されていないことを確認することもできます。この場合、ブラウザはページの先頭にジャンプします。これが望ましくないかどうかはあなた次第です。

于 2013-10-10T11:43:15.750 に答える