2

最終年度のプロジェクトで Web ベースのドキュメント管理を開発しています。ユーザーは 1 つのページのみを操作し、ユーザーがそれぞれのタブ (ナビゲーションにタブを使用) をクリックすると、AJAX を使用してそれぞれのページが呼び出されます。

複数のユーザー レベル (管理者、マネージャーなど) のために、対応する Web ページに JavaScript を配置しました。

ユーザーがユーザー要求を要求すると、一部の機能が複数回トリガーされる状況を除いて、すべてが完全に機能します。問題が見つかりました。ユーザーがタブをクリックするたびに、同じスクリプトが新しいインスタンスとして読み込まれ、関数を呼び出すと両方がトリガーされます。

疲れたコンテンツをロードする

.loadそして$.ajax();、それらのどれも問題に対処していません。

これは Firebug が示す方法です

その時点ですべてをメインページに入れようとしましたが、jQueryUI が機能しません。疲れた

$(document).load('click', $('#tab_root li'), function(){});

同じ問題が残っています。

誰でもこの問題を解決できますか?

- 編集 -

    $(function){
        $(document).on('click','#tabs',function(e){
            getAjax($(this))
        });

    }

    //method to load via AJAX
    function getAjax(lst){
        var cont = $(lst).text();
        $.ajax({
            url:'../MainPageAjaxSupport',
            data: {
                "cont":cont
            },
            error: function(request, status, error){
                if(status==404){
                    $('#ajax_body').html("The requested page is not found. Please try again shortly");      
                }
            },
            success: function(data){
                $('#ajax_body').html(data);
            },

        });


    }
4

2 に答える 2

0

「ドキュメント」のイベントクリックをバインドしたため、getAjax() は「ドキュメント」ではなく「#ajax_body」のみを置き換えます。

これは、古いイベントがまだ「ドキュメント」に関連付けられていることを意味します。必要なのは、「ドキュメント」を使用してイベントのバインドを解除する$(document).off('click');か、「ドキュメント」を他の要素に変更することだけです。

于 2015-01-21T06:20:32.753 に答える