0

3 つのセクションを持つページがあります。左側に静的メニュー

例えば

<a href="#" class="actionLink" id="newFile"><li>New File</li></a>

これにより、新しいアクションを開始できます。

$('.actionLink').click(function() {
    var folderID; // trying set ID here
    var fileName = $(this).attr('id');
    $("#myAction").load('/ajax/actions/' + fileName + '.php?folder_id=' + folderID);
})

したがって、これはロードされます/ajax/actions/newFile.php

中央は jquery を使用してロードされたページ.load()です。中央のページ内には、ID を持つ一連のフォルダーがあります。クリックすると、これらのフォルダの内容がページの右側に表示されます。

例えば

<span id="12" class="folder active99">Music</span>

$('.folder').click(function() {
    var folderID = $(this).attr('id');
    $("#myAction").load('/ajax/actions/links.php?folder_id=' + folderID);
})

クリックすると右側にコンテンツが表示されます。変数 folderID に注意してください。これはすべて正常に動作します。

私がやりたいのは、フォルダーが中央で選択されたときfolderIDに、左側のメニューの変数が変更されるため、新しいアクションが選択されたときに、想定されているフォルダーに対応することです。

どこでも、つまりすべてのセクションで変数を設定しようとしましvar folderID;たが、何を試しても変数が持ち運ばれません。

これは可能ですか、それとももっと良い方法がありますか? 私はそれについて間違っていますか?

要約すると、中央のフォルダーをクリックすると、左側のメニューに変数を追加する必要があります。

アップデート

これは私が現在使用しているコードです:

$(document).ready(function(){
            var folderID = '';
            $('.actionLink').click(function() {
                var fileName = $(this).attr('id');
                $("#myAction").load('/ajax/actions/' + fileName + '.php?folder_id=' + folderID);
            });

            $('.folder').click(function() {
                $('.folder').removeClass('active99'); // remove from all other <SPAN>s
                $(this).addClass('active99'); // add onto current
                var folderID = $(this).attr('id');
                $("#myAction").load('/ajax/actions/links.php?folder_id=' + folderID);
            });
        });

少し変更したので、使用するのではなく中間セクションが実際に含まれて.load()いますが、まだ機能していません

4

1 に答える 1

1

変数のスコープの問題に対処しています。folderID 変数を外部で (より大きなスコープで) 宣言する必要があるため、両方のアクションで使用できます。

$(document).ready(function(){
    var folderID = '';
    $('.actionLink').click(function() {
        var fileName = $(this).attr('id');
        $("#myAction").load('/ajax/actions/' + fileName + '.php?folder_id=' + folderID);
    });

    $('.folder').click(function() {
        folderID = $(this).attr('id');
        $("#myAction").load('/ajax/actions/links.php?folder_id=' + folderID);
    });
});
于 2013-10-06T21:19:29.677 に答える