Показать сообщение отдельно
  #1 (permalink)  
Старый 04.10.2017, 06:33
Интересующийся
Отправить личное сообщение для aston Посмотреть профиль Найти все сообщения от aston
 
Регистрация: 03.09.2017
Сообщений: 12

Изменить логику скрипта. js jq
Здравствуйте друзья! Есть скрипт отлавливающий правый клик мыши по ссылкам с классом(.а). Скрипт работает прекрасно! Но логика заключается в том, что он после загрузки страницы начинает циклом искать все ссылки, и далее из них формирует массив, который передает в функцию отвечающую за отлавливание события rightclick. Проблема заключается в том, что он в начале один раз получает массив ссылок и работает только с ним, то есть если я поменяю местами ссылки(имеющие определенные атрибуты) или добавлю новые, скрипт не работает или работает со старыми значениями атрибутов.

Вопрос: как переписать инициализацию скрипта, чтобы он работал на всех ссылках с классом(.а) но брал значения атрибутов не из кэша в массиве сформированном после загрузки страницы, а в реальном времени?

(function() {
        // получаем все ссылки
        var taskItems = document.querySelectorAll(".a");

        // кладем в массив и вызываем саму функцию
        for (var i = 0, len = taskItems.length; i < len; i++) {
            var taskItem = taskItems[i];
            contextMenuListener(taskItem);
        }

  function contextMenuListener(el) {
      el.addEventListener( "contextmenu", function(event) {
          event = event || window.event;
          event.preventDefault ? event.preventDefault() : event.returnValue = false;
          console.log(event, el);
          
          //... некий код js/jq
          
      return false;
    });
  }
 
})();

Последний раз редактировалось aston, 04.10.2017 в 06:38.
Ответить с цитированием