Обработайте событие .click, а затем используйте методы .parent и .hide.
$("a").click(function(){
$(this).parent().hide(); // this is the link element that was clicked
})
Код выше предполагает, что ссылка содержится непосредственно в элементе списка (<li>
). Если это не так, вы можете передать селектор в .parent
метод как это:
$(this).parent("li").hide();
Найдет пройти через предок вашей ссылки и вернуть тот, который является <li>
.
Возвращение ложных
Обычно, когда вы щелкните <a>
тег, браузер будет перемещаться к HREF тега. Если вы не хотите, чтобы вы могли либо return false;
из обработчика кликов, либо добавить href, который возвращает false: <a href="javascript:void(0)">Link</a>
. Об этом больше обсуждают in this question.
Есть много различных способов сделать это
Вам может потребоваться изменения кода, так как:
- Вы, вероятно, есть другие ссылки на страницы, которые вы не хотите, чтобы скрыть родитель. Вот почему имеет смысл использовать «ul li a» в качестве селектора вместо «a» - он будет соответствовать только ссылкам, находящимся внутри списка.
- Вы можете использовать объект события
.preventDefault()
вместо того, чтобы возвращать false чтобы браузер не менял адрес
- Поскольку ссылка будет скрыта после нажатия, вы также можете использовать метод .one - он удалит обработчик событий после того, как была нажата ссылка. Не делайте этого, если вы планируете снова показать ссылку позже.
- Вы можете использовать .on вместо
.click
если ваш список является динамическим, то есть вы будете использовать JavaScript, чтобы добавить ссылки на него
- Некоторые обернули отвечающий код в то, что называется сама-вызовом функция. Это выглядит так:
(function() { /* code */})(jQuery);
. Я бы не рекомендовал это для новичков, хотя это поможет вам структурировать ваш код позже. В основном это помогает избежать нежелательных побочных эффектов в коде и позволяет использовать .noConflict.
Интересно, что существует около 5 ответов, а на одном используется jQuery «on»? – Moons