Pracuję z 3 divs w tej chwili - na stronie Załaduj domyślną jest oglądany, ale po tym, jak użytkownik kliknie na przycisk Div jest ukryty, a wybrany div pojawia się na swoim miejscu.

Jak piszę oświadczenie, aby zidentyfikować DIV aktualnie wybrany przez użytkownika? Na przykład:

if selected_div is 'dpara' then ....

else if selected_div is dtab then ....

Z góry dziękuję!

    <script type='text/javascript'>
        function arrange(div_id) {
            // First make all the divs hidden...
            divs = document.getElementsByTagName('div');
            for( var i = 0; i < divs.length; i++ ) {
                divs[i].style.display = 'none';
            }

            // Now make the one we want to be visible visible...
            document.getElementById(div_id).style.display = 'block';
        }
    </script>
    <form>
        <input type='button' value='dpara' onclick='arrange(this.value);' />
        <input type='button' value='dtab' onclick='arrange(this.value);' />
        <input type='button' value='ddl' onclick='arrange(this.value);' />
    </form>
    <div id='dpara'>
    </div>

    <div id='dtab' style='display: none'>
    </div>

    <div id='ddl' style='display: none'>
    </div>
0
methuselah 6 grudzień 2011, 16:47

3 odpowiedzi

Najlepsza odpowiedź

Jak już przechodzisz przez funkcję dla każdego przycisku, możesz po prostu utrzymać widoczny div w zmiennej, coś w rodzaju:

var visibleDiv;

function arrange(divId) {
    // Cache the passed in 'div' as the currently visible one
    visibleDiv = document.getElementById(divId);

    // First make all the divs hidden...
    var divs = document.getElementsByTagName('div'),
        i,
        len;

    for (i = 0, len = divs.length; i < len; i++) {
        divs[i].style.display = 'none';
    }

    // Now make the one we want to be visible visible...
    visibleDiv.style.display = 'block';
}
1
jabclab 6 grudzień 2011, 16:58

Polecam, aby wdrożyć bibliotekę JS, która pomoże Ci to zrobić w przeglądarkach. Na przykład jQuery może określić, co jest widoczne, jak opisano tutaj ...

http://api.jquery.com/vishible-selector/

0
Brad 6 grudzień 2011, 12:55

Zidentyfikuj div s podczas uruchamiania i przypisz do nich nową funkcję:

$('#dpara')[0].myFunc = function() { ... }
$('#dtab')[0].myFunc = function() { ... }

Teraz możesz

selected_div.myFunc();

Jak znaleźć wybrany div? Użyj selektora :visible:

$('div:visible')[0].myFunc();

PS: [0] otrzymuje element DOM z listy jQuery.

0
Aaron Digulla 6 grudzień 2011, 13:23