Почему моя функция нажатия jQuery не работает?

0

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

$("#sub_projectLabel a li").click(function() {
        $("#h").show("slow");
});

Вот html:

<ul id="sub_projectLabel">

                <a href="#"><li style="line-height: 10">Add Sub Project</li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <!--<a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>
                <a href="#"><li><h4>Sub Project Title</h4></li></a>-->

            </ul>
Теги:
click
show
hide

3 ответа

2

Обтекание списком в ссылке недействительно html. сделайте это так:

 <ul id="sub_projectLabel">
   <li><a href="#">Sub Project Title</a></li>
 </ul>

и выберите его так:

$("#sub_projectLabel li").click(function() {
   //do something
});
  • 0
    Ой, извините, я не включил другой бит HTML, где я использую h в качестве идентификатора, чтобы вызвать функцию щелчка. Спасибо за вашу помощь. :)
  • 0
    был немного запутанным. Как sidenode, если вы запускаете свой клик с помощью javascript, почему вы используете <a> -ссылку?
Показать ещё 1 комментарий
0

Похоже, вы пытаетесь показать элемент, который не существует. Я не вижу "#h" в вашем HTML... вы хотите настроить таргетинг на теги h4? Если это так, вам нужно сделать это следующим образом:

$("#sub_projectLabel a li").click(function () {
    $("h4").show("slow");
});

Я бы, однако, также поставил якоря внутри элементов списка.

Вот рабочий пример: http://jsfiddle.net/ttV7D/

  • 0
    Здравствуй. Нет, я не пытаюсь нацелиться на тег h4. Если вы немного прочитали, я прокомментировал, что случайно пропустил некоторые html. У меня есть div, обернутый вокруг содержимого, которое я хочу показать, с идентификатором #h. Поэтому я спрятал содержимое с помощью style = "display: none" в div внутри html, поэтому jQuery должен просто активировать div при нажатии на соответствующий селектор, чтобы отобразить содержимое скрытого div. Я думаю, что это просто ошибка иерархии с HTML, что заставляет его работать неправильно.
  • 0
    Всем привет. Что ж, в вашей функции щелчка нет ничего плохого, поэтому должна быть проблема с HTML. Трудно сказать, не видя его, вы можете опубликовать отсутствующий код? В качестве альтернативы вы можете протестировать свой HTML с помощью инструмента валидатора w3c http://validator.w3.org/ . Если у вас есть недопустимая разметка (например, LI, обернутые в DIV или Anchors), она должна это обнаружить.
Показать ещё 1 комментарий
0

Может быть, потому что нет элемента с id = "h". Поэтому ваш слушатель событий работает, но вы пытаетесь показать что-то, чего не существует.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню