0

問題は Safari のみです。3 つのタブがあり、それぞれに div id が表示され、他の 2 つが非表示になっています。tab2、tab3、tab1の順にクリックすると、画面が上にスクロールせずに適切なdivが表示/非表示になりますが、タブ1からtab2またはtab3をクリックすると、画面が参照先のdivの一番上に移動します。なぜこれが当てはまるのか、どうすれば解決できるのか、誰でも考えられますか? タブをクリックした後、画面が上にスクロールせずに div を表示/非表示にしたいと思います。ありがとう!

HTMLコードは次のとおりです。

`

<a onClick="remove_visibility('tabs2'), remove_visibility('tabs3'), toggle_visibility('tabs1')">Tab 1</a> 


<a onClick="remove_visibility('tabs1'), remove_visibility('tabs3'), toggle_visibility('tabs2')" class="selected">Tab 2</a> 


<a onClick="remove_visibility('tabs1'), remove_visibility('tabs2'), toggle_visibility('tabs3')">Tab 3</a>


`

関連するjQueryコードは次のとおりです。

 <script type="text/javascript">
toggle_visibility = function (id) {
    var e = $("#"+id);
    e.show();
}
remove_visibility = function (id) {
    var e = $("#"+id);
    e.hide();
}


</script>
4

1 に答える 1

1

アンカー ID、クラス、タイプ、またはその他の方法でそれらをアタッチする JQuery 呼び出しで onclick を使用しません。表示と非表示の後に false を返すこれらの関数でも試してみてください。これでうまくいく可能性があります。空のアンカーをクリックしたために、どこかをナビゲートしようとしていると私は考えています。

アップデート:

私はそれを行ういくつかのコードを持っています.htmlはページの下部にあり、ブラウザのスクロール位置は下部にあり、上に移動しません:

JQuery (これは私の HTML に基づいた簡単なモックアップです。デモとして提供し、ニーズに合わせてカスタマイズし、アイテムを取得する方法と方法を示します):

<script type="text/javascript">
    $(document).ready(function() {
        $(".divClass a").each(function(i) {
            if ($(this).text() != 'Tab 2') {
                $(this).next().hide();
            }
            $(this).click(function() {
                $(".divClass a").each(function(i) {
                    $(this).next().hide();
                });
                $(this).next().show();
                return false;
            });
        });
    });
</script>

HTML (デモ用に簡単にまとめたもの):

<div class="divClass">
    <a href="JavaScript:void();">Tab 1</a>
        <div id="Tab1">
            I am Tab 1 
        </div>
    <a href="JavaScript:void();">Tab 2</a>
        <div id="Tab2">
            I am Tab 2 
        </div>
    <a href="JavaScript:void();">Tab 3</a>
    <div id="Tab3">
            I am Tab 3 
        </div>
</div>
于 2012-06-05T22:48:13.383 に答える