выпадающий javascript - PullRequest
0 голосов
/ 16 марта 2009

Я не уверен, что мне здесь не хватает. это код, который я поместил:

       <script type="text/javascript">
    $(function(){
        $(".category_list").hide(); return false;
        $("#sol-surface").click( function() {
            $(this).next().toggle();
            return false;
        });
        $("#nat-stone").click( function() {
            $(this).next().toggle();
            return false;
        });
        $("#man-surface").click( function() {
            $(this).next().toggle();
            return false;
        });
    });

</script>

и хотя оно скрывает подменю, оно также не появляется, когда я нажимаю на элемент - вот что появляется, когда я смотрю на источник:

    <div class="cat_nav">
    <ul>
        <li><a href="#" id="sol-surface">Solid Surface</a></li>

        <li><a href="#" id="nat-stone">Natural Stone</a></li>
        <li><a href="#" id="man-surface">Manufactured Surface</a></li>
    </ul>
    <div id="sub-nav">
    <ul class="category_list">
    <li><a href="http://www.metrostoneworks.com/products/?c=corian">Corian</a></li>
</ul>
    <ul class="category_list">

    <li><a href="http://www.metrostoneworks.com/products/?c=granite">Granite</a></li>
    <li><a href="http://www.metrostoneworks.com/products/?c=silestone">Silestone</a></li>
</ul>
    <ul class="category_list">
    <li><a href="http://www.metrostoneworks.com/products/?c=zodiaq">Zodiaq</a></li>
</ul>
    </div> <!-- EO #sub-nav -->
</div> <!-- EO .cat_nav -->

и я не уверен, почему я не могу попасть в подменю ... спасибо

Ответы [ 2 ]

3 голосов
/ 16 марта 2009

Почему вы возвращаете ложь сразу после сокрытия?

$(".category_list").hide(); return false;

Это возвращение выходит из функции, в которой вы находитесь, и не связывает остальные элементы.

Кроме того, ваш HTML не тот, каким должен быть ваш код для работы. Это должно выглядеть так:

<div class="cat_nav">
    <ul>
    <li><a href="#" id="sol-surface">Solid Surface</a>
        <ul class="category_list">
        <li><a href="http://www.metrostoneworks.com/products/?c=corian">Corian</a></li>
        </ul>
    </li>
    <li><a href="#" id="nat-stone">Natural Stone</a>
        <ul class="category_list">
        <li><a href="http://www.metrostoneworks.com/products/?c=granite">Granite</a></li>
        <li><a href="http://www.metrostoneworks.com/products/?c=silestone">Silestone</a></li>
        </ul>   
    </li>
    <li><a href="#" id="man-surface">Manufactured Surface</a>
        <ul class="category_list">
        <li><a href="http://www.metrostoneworks.com/products/?c=zodiaq">Zodiaq</a></li>
        </ul>   
    </li>
    </ul>
</div>

Как только ваш HTML выглядит так, вы можете заменить это:

    $("#sol-surface").click( function() {
            $(this).next().toggle();
            return false;
    });
    $("#nat-stone").click( function() {
            $(this).next().toggle();
            return false;
    });
    $("#man-surface").click( function() {
            $(this).next().toggle();
            return false;
    });

С этим:

    $("div.cat_nav > ul li a").click( function() {
            $(this).next().toggle();
            return false;
    });
0 голосов
/ 16 марта 2009

Поскольку $(this).next() возвращает неопределенное значение во всех трех случаях. У ваших ссылок нет братьев и сестер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...