события щелчка, привязанные к документу, не запускаются для некоторых элементов

#javascript #html #jquery #foundation

#javascript #HTML #jquery #zurb-foundation

Вопрос:

в нашем проекте я привязал одно событие щелчка по документу

 $(document).on('click', function(e){
     // some block of code
    });
 

наша команда недавно начала использовать foundation js (версия 5.3), и в нашем проекте html будут некоторые базовые классы, такие как базовые вкладки и т. Д.

предыдущее событие щелчка не запускается для элементов, имеющих базовые классы

 <li>
      <a href="javascript:void(0);" id="undoIcon"><i class="create-icon-undo"></i></a> 
    <p>Undo</p>
    </li>  ------------ when clicked on this , event is firing
 

но

 <li class="has-dropdown">
      <a href="javascript:void(0);" id="saveIcon"><i class="create-icon-save"></i></a><p>Save</p>
</li> -------------- when clicked on this foundation clicks are firing but the event binded on document is not firing.
 

Есть еще несколько элементов, имеющих ту же проблему, один из шаблонов имеет html, связанный с вкладками foundation.

Так что есть какой-то способ, при котором щелчки могут срабатывать. я запускаю фундамент следующим образом

 $(document).ready(function(){
            $(document).foundation();
        });
 

Заранее спасибо

Ответ №1:

После долгого поиска, наконец, найдена основная причина. В Foundation5, когда когда-либо запускается событие, оно проверяет, есть ли у цели такие классы, как has-dropdown .

Если эти условия выполнены , Foundation5 останавливает событие оттуда с помощью event.stopImmediatePropagation() .

Вот почему события, привязанные к документу, не распространяются.

В Foundation6 все эти stopimmediateprop распространения удалены, так что никаких проблем нет.