0

Javascript / Jqueryを使用して、ユーザーのウィンドウに表示されるdivをボタンで切り替えています。#containerユーザーが特定の場所をクリックすると、別のdivに切り替わる最初のバックグラウンドdivがあります。新しいdivが表示されると、戻るボタンがオンになります。戻るボタンを押すと、divを最初の状態に戻すようにし#containerます。これが発生した場合は、戻るボタンの表示を再びオフに切り替える必要があります。

戻るボタンが表示されるdivが異なるため、特定のdivをオフに切り替えて#containerをオンに戻すには、ユーザーが表示しているバックグラウンドdivを判別する必要があります。現在のdivをオフに切り替えないと、コンテナは再び表示されません。

1つのインスタンスの例の私のコードは次のとおりです。

JS:

$(document).ready(function()
{
    $("#backButton").click(function(e)
    {
        if(THE CURRENT DIV IS REGION 1)
        {
            $("#container").toggle(); //toggle the container on
            $("#region1").toggle(); //toggle region 1 off
            $("#backButton").toggle(); //toggle the back button off
        }
    });
});

明らかに、ユーザーが見ているdivを判別するためにどのコードを使用するかはわかりません。試しif(document.getElementById('region1');)ましたが、うまくいきませんでした。私はそうなるとは思いませんでしたが、それが現在のdivを決定する方法について私が行く方向です。

どんな助けでも大歓迎です!

4

4 に答える 4

2
if($('#region1').is(":visible")){ etc... }
于 2011-03-22T16:53:10.033 に答える
0

div内のDOMにある戻るボタンについて話している場合はregion1、次を使用できます。

    if($(this).parents("#region1").length > 0)

これは、「ID領域1を含むこのボタンの親の数がゼロ以外の場合」と言います。詳細については、を参照してください。一般に、jQueryのトラバース関数が役立ちます。

于 2011-03-22T16:52:14.637 に答える
0

これはあなたが探しているものかもしれません:http: //api.jquery.com/parent-selector/

于 2011-03-22T16:52:27.317 に答える
0

2つのDIVを前後に切り替えるだけの場合は、.toggle()関数がすぐにそれを行う必要があるため、現在表示されているDIVを確認する必要はありません。

2つのDIVがあるとします。次のように、1つが非表示で、もう1つが表示されていることを確認します。

<div id="region1">foo</div>
<div id="region2" style="display:none;">bar</div>

これで、ボタンをクリックすると.toggle()、両方を呼び出すだけで済みます。

$('#backButton').click(function(){
    $('#region1, #region2').toggle();
});

ボタンを1つだけ使用してそれを行うこともできます。必要に応じて、ボタン内のテキストを切り替えるだけです。

// inside the click handler
$(this).val( $(this).val() == 'Next' ? 'Back' : 'Next' );

ここでの完全なコード例:jsFiddleの例

于 2011-03-22T17:05:17.233 に答える