Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > вопрос по jquery вкратце не объясню


Автор: zammar 3.11.2012, 14:25
Есть такой код html. список в два уровня. Первый открытый второй закрытый
Код

<ul class="test">
    <li>
        <a ...>
        <ul style="display:none;">
            <li>
            </li>
        </ul>
    </li>
</ul>




Теперь задача чтобы при клике на элемент списка li открывался его непосредственный подсписок ul. Не все внутренние а только непосредственный потомок

Делаю так:
Код

$(document).ready(function(){
    $('ul.test li').live("click", function(){

        // здесь хочу обратиться к непосредственному потомку тега li к тегу ul, чтобы сделать ему display block. но как грамотно это сделать?
        // $(this) так я обращаюсь к li на который нажали, а дальше как можно прописать дополнительные селекторы?
        // типа $(this).("бла бла бла"); Какой метод надо вызвать для указания дополнительных селекоторов?


        $(this + " > ul").css("display", "block"); // так не работает

    });
});

Автор: Amphiluke 3.11.2012, 21:49
Код

$(this).children("ul").show();


P.S. Метод .live() уже давно deprecated. Используйте .on(), если только вам не навязана старая версия библиотеки.

Автор: zammar 4.11.2012, 15:57
спасибо большое.
да версия 1.6

Автор: Amphiluke 4.11.2012, 17:36
Цитата(zammar @  4.11.2012,  19:57 Найти цитируемый пост)
да версия 1.6

В таком случае лучшим решением будет .delegate() вместо .live()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)