0

I-net で、この非常に優れたタブ機能を見つけました。アンカーを使用するときの標準的な問題について読みました: Windows が一番上にジャンプします。e.PreventDefault() と Live Eventlistener が統合されていますが、タブをクリックするとトップにジャンプします。アドバイスをいただけますか?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
    $('ul.tabs').each(function () {
        var $active, $content, $links = $(this).find('a');
        $active = $links.first().addClass('active');
        $content = $($active.attr('href'));

        $links.not(':first').each(function () {
            $($(this).attr('href')).hide();
        });

        // Binde den click event handler
        $(this).on('click', 'a', function (e) {
            // Mache den alten Tab inaktiv
            $active.removeClass('active');
            $content.hide();
            $active = $(this);
            $content = $($(this).attr('href'));
            $active.addClass('active');
            $content.fadeIn(800);
            e.preventDefault();
        });
    });
});
</script>
4

1 に答える 1

1

を検索しevent.preventDefault、 (多くの時間stopPropagationreturn falseテストしました)
さらに、HREFをjavascript:void(0)(可能な場合)に変更します

e.preventDefault は時々トリックを行うことができませんでした。私が見つけた最良の方法は、onclick という関数の最後に return false を追加することです。

        // Binde den click event handler
        $(this).on('click', 'a', function (e) {
            e.preventDefault();
            // Mache den alten Tab inaktiv
            $active.removeClass('active');
            $content.hide();
            $active = $(this);
            $content = $($(this).attr('href'));
            $active.addClass('active');
            $content.fadeIn(800);
            e.stopPropagation();
            return false;;
        });
于 2013-03-27T13:49:19.973 に答える