отключение родительской ссылки выпадающего меню

#javascript #jquery #css

#javascript #jquery #css

Вопрос:

 <li class="menu-229 menuparent menu-path-front even">
<a title="About" href="/tca/">about</a>
<ul style="display: none; visibility: hidden;">
</li>
  

Выше приведен пример настройки моего динамически сгенерированного выпадающего меню.

ul — это выпадающее меню со ссылками, однако я хочу отключить интерактивность тега About a. Я не хочу, чтобы родительские элементы выпадающего списка были ссылкой.

Я пытался:

     $('.menuparent').click(function(e) {
 e.preventDefault() // or return false;
});
  

но этот код также отключает ссылки выпадающего меню.

Извините, забыл упомянуть, что это меню создано Drupal. Я не думаю, что смогу ее коснуться. Я могу работать только с тем, что мне дано.

Ответ №1:

Попробуйте этот селектор с prev() :

 $('.menuparent > ul').prev('a').click(function(e) {
    e.preventDefault();
});
  

Комментарии:

1. Могу проголосовать еще раз только через час, но я вернусь и 1, когда смогу. @Adam: jsFiddle для отображения рабочего кода — jsfiddle.net/stealthyninja/hUbwb/2

2. Удивительные. Работает без необходимости касаться css… которую я отредактировал, чтобы упомянуть, что я не могу, потому что ее генерирует модуль Drupal под названием nice menu.

Ответ №2:

Действительно простым подходом было бы добавить класс к каждому из родительских элементов и использовать именно этот код для таргетинга на родительский класс.

Ответ №3:

 <a title="About" href="/tca/" onClick="javascript:return false;">about</a>
  

Сработает ли это?

С помощью тега привязки onClick событие оценивается до того, href как оно будет фактически выполнено. Если onClick событие возвращает a, false то href оно не активируется.