JS Accordion закрывается при нажатии на ссылки внутри

У меня возникли проблемы с открытием аккордеона при нажатии ссылок в раскрывающемся списке аккордеона. Это страница карьеры, и когда я открываю отдельные вакансии, я хочу, чтобы пользователи могли открывать приложение в новой вкладке. Любые идеи?

https://www.trinovainc.com/careers.html

<div class = "accordion">
  <div class = "accordion-panel careers" data-id = "panel-1">
    <div class = "accordion">
      <h4><a class = "accordion-title">Application Engineer - Mobile, AL<span class = "ion-chevron-down"></span></a></h4>
    </div>
    <div class = "accordion-panel-content panel-1">
      <p>TriNova is looking for an energetic and personable candidate who is a self-motivated and well-organized professional to join our team as an Application Engineer.</p>
      <h4>Summary</h4>
      <ul>
        <ul>
          <li>Provides in-depth product and application knowledge for TriNova and customers; specifically providing inside sales support for account managers. Duties to include reviewing of specifications, verifying model codes, quoting, ordering, expediting and communicating with the customer and sales force.</li>
        </ul>
      </ul>
      <h4>PRIME RESPONSIBILITIES</h4>
      <ul>
        <ul>
          <ul>
            <li>Review all types of applications that consist of but not limited to: sizing valves, choosing instruments, sizing gamma, sizing flowmeters and creating electrical &amp; PID drawings for various types of field instrument panels.</li>
            <li>Review specifications and provide model codes for products.</li>
            <li>Perform CAD drawings of best practice installation and wiring</li>
            <li>Communicate with the customer, outside salespeople, manufacturers and the Area Vice President.</li>
            <li>Understand commercial issues and terms.</li>
            <li>Field visits with account managers for relationship development, training and as required to optimize the order process and achieve customer satisfaction</li>
            <li>Improve product and technical knowledge.</li>
            <li>Troubleshooting of basic device issues.</li>
          </ul>
        </ul>
      </ul>
      <h4>MINIMUM EDUCATION</h4>
      <ul>
        <ul>
          <ul>
            <li>Bachelor&rsquo;s Degree in Engineering.</li>
            <li>Minor in Sales Engineering is a plus</li>
          </ul>
        </ul>
      </ul>
      <h4>TRAVEL</h4>
      <ul>
        <ul>
          <ul>
            <li>Occasional travel required.</li>
          </ul>
        </ul>
      </ul>
      <h4>PREVIOUS JOB EXPERIENCE</h4>
      <h4>Desired:</h4>
      <ul>
        <ul>
          <ul>
            <li>Previous related experience of at least 2 years</li>
          </ul>
        </ul>
      </ul>
      <h4>Required:</h4>
      <ul>
        <ul>
          <li>None</li>
          <ul></ul>
        </ul>
      </ul>
      <a class = "button orange apply" href = "https://www.trinovainc.com/job-application.html" target = "_blank">Apply Now</a>
    </div>
  </div>
</div>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
110
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте event.stopPropagation():

В Javascript у вас есть всплытие событий, что означает, что всякий раз, когда событие запускается для элемента. Это событие всплывает для всех родительских элементов. Это означает, что если у вас есть щелчок для аккордеона, чтобы закрыть его, и вы нажмете кнопку (или что-то еще) внутри него, он закроется. Вы можете предотвратить это, используя event.stopPropagation(). Это остановит распространение события по структуре DOM.

Пример:

function prop(e){
  console.info(e.currentTarget);
}

function notProp(e){
  console.info(e.currentTarget);
  e.stopPropagation();
}
<div id = "propagated" onclick = "alert('Bubbled')"><button onclick = "prop(event)">Click</button></div>

<div id = "notpropagated" onclick = "alert('OH NO')"><button onclick = "notProp(event)">Click</button></div>

@sotechworks Вы еще не догадались? Если вам нужны дополнительные разъяснения, дайте мне знать.

Cory Kleiser 08.06.2018 05:45

На самом деле я еще не понял этого.

jacobisknight 28.08.2018 15:46

У меня возникли проблемы с открытием кнопки применения, которая находится внутри этого аккордеона.

jacobisknight 28.08.2018 15:53

'есть некоторые проблемы' ... Это те же проблемы, которые описаны в вопросе?

Cory Kleiser 28.08.2018 17:10

@sotechworks. Попробуйте добавить это в тег a («кнопка применения»): onclick = "event.stopPropagation()"

Cory Kleiser 28.08.2018 17:15

Да, извините, такие же проблемы.

jacobisknight 28.08.2018 17:24

добавить это к этому? <a class = "button orange apply" href = "trinovainc.com/job-application.html" target = "_blank"> Подать заявку сейчас </a> </div>

jacobisknight 28.08.2018 17:24

да тег a

Cory Kleiser 28.08.2018 17:28

@sotechworks так ... <a class = "button orange apply" href = "trinovainc.com/job-application.html" target = "_blank" onclick = "event.stopPropagation()">Apply Now</a>

Cory Kleiser 28.08.2018 17:29

@sotechworks, добро пожаловать. Примите ответ, установив рядом с ним галочку. Удачного кодирования !!

Cory Kleiser 29.08.2018 23:23

Другие вопросы по теме