TypeError: меню не является функцией - PullRequest
0 голосов
/ 30 марта 2020

У меня есть эта ошибка, которую я не могу найти, почему она не вызывается должным образом, меню - это функция, но она говорит, что это не так. ошибка (TypeError: меню не является функцией) Я пытался переместить его до HTML, который вызывает его, но это не сработало.

<script>
    var dropdown = document.querySelector("nav .dropdown");
    var menu = document.querySelector("nav div .menu");

    function menu()
    {
        if(dropdown.style.display === "none")
        {
            dropdown.style.display = "grid";
        }
        else
        {
            dropdown.style.display = "none";
        }
    } </script>

<input class="button" type="button" onclick="location.href='Controller/logout.php';" value="logout" /> <nav>
    <div class="content">
        <div class="links">
            <a href="Home">Home</a>
            <a href="Portfolio">Portfolio</a>
            <a href="Reviews">Reviews</a>
        </div>
        <i class="material-icons menu" onclick="menu()">menu</i>
    </div>
    <div class="dropdown">
        <a href="Home">Home</a>
        <a href="Portfolio">Portfolio</a>
        <a href="Reviews">Reviews</a>
    </div> </nav>

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

это не работает, потому что вы объявляете "menu" как класс html и функцию JS. просто переименуйте вашу функцию в обоих местах.

<i class="material-icons menu" onclick="menu()">menu</i>

до

<i class="material-icons menu" onclick="menuFunc()">menu</i>

также

function menu()

до

function menuFunc()
0 голосов
/ 30 марта 2020

Это, вероятно, возвращает ошибку, так как проблемы с именами. Menu is not a function потому что вы сначала инициализируете его с var, а затем переопределяете его с function. Попробуйте переименовать любую из переменных (или даже удалить первую, поскольку она никогда не используется)

...