Простой Onclick Javascript раскрывающийся список навигации без использования переключателя / вкладки - PullRequest
2 голосов
/ 07 февраля 2012

Довольно плохо знаком с использованием Javascript. Хотел бы избежать использования Jquery или других фреймворков.

Это простая выпадающая навигация, которую я пытаюсь создать, используя скрипт, который я нашел здесь: http://blog.movalog.com/a/javascript-toggle-visibility/

Я мог бы использовать некоторую помощь для очистки кода и некоторых указателей. Это работает так, как мне нужно, но хотелось бы немного его сократить. Спасибо.

HTML:

<div id="dropMenu">
    <ul>
        <li><a href="#" onclick="showhide1(d1);">Advanced AGM</a>
        </li>
        <li><a href="#" onclick="showhide2(d2);">Lithium-ION</a>
        </li>
        <li><a href="#" onclick="showhide3(d3);">Chargers</a>
        </li>
        <li><a href="#" onclick="showhide4(d4);">Mounts</a>
        </li>
        <li><a href="#" onclick="showhide5(d5);">Accessories</a>
        </li>
    </ul>
</div>

<div id="d1" class="dropContent" style="display:none;">
This is Content 1.
</div>

<div id="d2" class="dropContent" style="display:none;">
This is Content 2.
</div>

<div id="d3" class="dropContent" style="display:none;">
This is Content 3.
</div>

<div id="d4" class="dropContent" style="display:none;">
This is Content 4.
</div>

<div id="d5" class="dropContent" style="display:none;">
This is Content 5.
</div>

Javascript:

<script type="text/javascript">

    function hide(){
        d1.style.display = 'none', 
        d2.style.display = 'none',
        d3.style.display = 'none', 
        d4.style.display = 'none', 
        d5.style.display = 'none'; 
    }


    function showhide1() {

        document.getElementById(d1);
        if(d1.style.display == 'block')
            hide();
        else
            d1.style.display = 'block', 
            d2.style.display = 'none',
            d3.style.display = 'none', 
            d4.style.display = 'none', 
            d5.style.display = 'none'; 

    }

    function showhide2() {
        document.getElementById(d2);
        if(d2.style.display == 'block')
            hide();
        else
            d2.style.display = 'block', 
            d1.style.display = 'none', 
            d3.style.display = 'none', 
            d4.style.display = 'none', 
            d5.style.display = 'none'; 
    }

    function showhide3() {
        document.getElementById(d3);
        if(d3.style.display == 'block')
            hide();
        else
            d1.style.display = 'none', 
            d2.style.display = 'none',
            d3.style.display = 'block', 
            d4.style.display = 'none', 
            d5.style.display = 'none'; 
    }

    function showhide4() {
        document.getElementById(d4);
        if(d4.style.display == 'block')
            hide();
        else
            d1.style.display = 'none', 
            d2.style.display = 'none',
            d3.style.display = 'none', 
            d4.style.display = 'block', 
            d5.style.display = 'none'; 
    }

    function showhide5() {
        document.getElementById(d5);
        if(d5.style.display == 'block')
            hide();
        else
            d1.style.display = 'none', 
            d2.style.display = 'none',
            d3.style.display = 'none', 
            d4.style.display = 'none', 
            d5.style.display = 'block'; 
    }


</script>

1 Ответ

0 голосов
/ 07 февраля 2012

Java Script

function showhide(obj) {

                document.getElementById('d1').style.display = 'none';
                document.getElementById('d2').style.display = 'none';
                document.getElementById('d3').style.display = 'none';
                document.getElementById('d4').style.display = 'none';
                document.getElementById('d5').style.display = 'none';
                document.getElementById(obj).style.display = 'block';

            }

HTML

<div id="dropMenu">
    <ul>
        <li><a href="#" onclick="showhide('d1');">Advanced AGM</a>
        </li>
        <li><a href="#" onclick="showhide('d2');">Lithium-ION</a>
        </li>
        <li><a href="#" onclick="showhide('d3');">Chargers</a>
        </li>
        <li><a href="#" onclick="showhide('d4');">Mounts</a>
        </li>
        <li><a href="#" onclick="showhide('d5');">Accessories</a>
        </li>
    </ul>
</div>

<div id="d1" class="dropContent" style="display:block;">
This is Content 1.
</div>

<div id="d2" class="dropContent" style="display:none;">
This is Content 2.
</div>

<div id="d3" class="dropContent" style="display:none;">
This is Content 3.
</div>

<div id="d4" class="dropContent" style="display:none;">
This is Content 4.
</div>

<div id="d5" class="dropContent" style="display:none;">
This is Content 5.
</div>

Надеюсь, это поможет


...