Упрощенный HTML:
<ul>
<li class="no-link"><a>Should not be clickable</a>
<ul>
<li><a>Should be clickable</a></li>
<li><a>Should be clickable</a></li>
</ul>
</li>
</ul>
Javascript:
jQuery(document).ready(function( $ ) {
$('a').parent().click(function(e) {
if($(this).hasClass('no-link')){
e.preventDefault();
}
});
})
Прекрасно работает со ссылкой, которая не должна быть кликабельной, но также влияет на два потомка тегов a
. Почему? Я думал, что parent()
прошел только один шаг в DOM.
Я добавляю класс программно через WordPress (как вариант в панели управления «Внешний вид»> «Меню»), поэтому нацеливание на тег a
напрямую через класс на самом деле не вариант.