0

function.js ファイル内には 2 つの関数があります。最初の関数は、ajax を使用してページをロードします。もう 1 つは、ホームページのタブ付きコンテンツを縮小するためのものです。最初は、両方の機能が動作します。しかし、メニュー バーのリンクのいずれかをクリックし、ホーム リンクをクリックしてホーム ページに戻ると、タブ領域が機能しなくなります。Organictabs() 関数は、index.html が最初に読み込まれたときにのみ呼び出されるように感じます。新しいページが読み込まれるたびにorganictabs()が呼び出されるようにするにはどうすればよいですか?

// remap jQuery to $
(function($){})(window.jQuery);


/* trigger when page is ready */
$(document).ready(function (){
    initialize();

});

function initialize() {
    //Click on nav to load external content through AJAX
    $('#topnav a, #bottomnav a').not('#bottomnav #fbcallus a').click(function(e){

        e.preventDefault();

        $('#pages').load( e.target.href + ' #loadcontent'); //pages finished loading
    }); //clicked on nav
    //handle AJAX for left nav
$(function() {
        $("#tabedarea").organicTabs();
    });


}



    //Click on nav to load external content through AJAX
    // $('#topnav a').click(function(e){
    //  e.preventDefault();
    //  $('#pages').load( e.target.href + ' #loadcontent'); //pages finished loading
    // }); //clicked on nav



(function($) {

    $.organicTabs = function(el, options) {

        var base = this;
        base.$el = $(el);
        base.$navtabs = base.$el.find(".navtabs");

        base.init = function() {

            base.options = $.extend({},$.organicTabs.defaultOptions, options);

            // Accessible hiding fix
            $(".hidetabs").css({
                "position": "relative",
                "top": 0,
                "left": 0,
                "display": "none"
            }); 

            base.$navtabs.delegate("li > a", "click", function() {

                // Figure out current list via CSS class
                var curList = base.$el.find("a.current").attr("href").substring(1),

                // List moving to
                    $newList = $(this),

                // Figure out ID of new list
                    listID = $newList.attr("href").substring(1),

                // Set outer wrapper height to (static) height of current inner list
                    $allListWrap = base.$el.find(".list-wrap"),
                    curListHeight = $allListWrap.height();
                $allListWrap.height(curListHeight);

                if ((listID != curList) && ( base.$el.find(":animated").length == 0)) {

                    // Fade out current list
                    base.$el.find("#"+curList).fadeOut(base.options.speed, function() {

                        // Fade in new list on callback
                        base.$el.find("#"+listID).fadeIn(base.options.speed);

                        // Adjust outer wrapper to fit new list snuggly
                        //var newHeight = base.$el.find("#"+listID).height();
                        //$allListWrap.animate({
                        //    height: newHeight
                        //});

                        // Remove highlighting - Add to just-clicked tab
                        base.$el.find(".navtabs li a").removeClass("current");
                        $newList.addClass("current");

                    });

                }   

                // Don't behave like a regular link
                // Stop propegation and bubbling
                return false;
            });

        };
        base.init();
    };

    $.organicTabs.defaultOptions = {
        "speed": 300
    };

    $.fn.organicTabs = function(options) {
        return this.each(function() {
            (new $.organicTabs(this, options));
        });
    };

})(jQuery);
4

1 に答える 1

1

jquery ロードで完全な関数を使用すると、問題が解決すると思います。

function initialize() {
//Click on nav to load external content through AJAX
$('#topnav a, #bottomnav a').not('#bottomnav #fbcallus a').click(function(e){

    e.preventDefault();

    $('#pages').load( e.target.href + ' #loadcontent', function() { $("#tabedarea").organicTabs(); }); //pages finished loading
});
}
于 2012-04-16T13:23:21.367 に答える