Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 25.06.2018, 12:19
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

var items = document.querySelector('.page-content');

я вешаю обработчик на родителя, затем ловлю на каком элементе происходит событие.
когда событие наступает - нужно снять обработчик.
а он не снимается.
подозреваю, что проблема в передаче функции через handler в addEventLiustener.
Ответить с цитированием
  #22 (permalink)  
Старый 25.06.2018, 12:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,981

Dilettante_Pro,
строка 1 и строка 5 ???
Ответить с цитированием
  #23 (permalink)  
Старый 25.06.2018, 12:55
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

Dilettante_Pro,

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

пример выше у меня не работает ни на сайте, ни после перетягивания в редактор
стурктура элементов в вашем примере была правильная
page-content - родитель
item-actions__cart - вложенные элементы

Последний раз редактировалось alecto, 25.06.2018 в 12:57.
Ответить с цитированием
  #24 (permalink)  
Старый 25.06.2018, 12:56
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони, спасибо, я уже заметил.
Не снимается.
<div class = 'page-content'>page-content
   <div >Content</div>
   <div class = 'item-actions__cart'>Content Cart</div>
   <div >Content</div>
</div>
<script>
var fnCounter = function (e) {
  var target = e.target;
  alert(target.textContent);
  if (target.classList.contains('item-actions__cart')) {
    items.removeEventListener('click', fnCounter);
  }
};


var items = document.querySelector('.page-content');
items.addEventListener('click', {handleEvent: fnCounter, e: event});

</script>
Ответить с цитированием
  #25 (permalink)  
Старый 25.06.2018, 12:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Вот так снимается
<div class = 'page-content'>page-content
   <div >Content</div>
   <div class = 'item-actions__cart'>Content Cart</div>
   <div >Content</div>
</div>
<script>
var fnCounter = function (e) {
  var target = e.target;
  alert(target.textContent);
  if (target.classList.contains('item-actions__cart')) {
    items.removeEventListener('click', fnCounter);
  }
};


var items = document.querySelector('.page-content');
items.addEventListener('click', fnCounter);

</script>

Очевидно, EventListener считает, что fnCounter и handleEvent: fnCounter - разные функции

Последний раз редактировалось Dilettante_Pro, 25.06.2018 в 13:16.
Ответить с цитированием
  #26 (permalink)  
Старый 25.06.2018, 12:58
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

Dilettante_Pro,
да, у меня тоже самое происходит.
событие срабатывает, но снять его не могу.
Ответить с цитированием
  #27 (permalink)  
Старый 25.06.2018, 13:15
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

alecto,
Пост 25 видели?
Ответить с цитированием
  #28 (permalink)  
Старый 25.06.2018, 13:36
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

да, теперь увидел.
решение оказалось очень простым.
спасибо огромное, ваш сайт просто незаменимый ресурс по JS!
Ответить с цитированием
  #29 (permalink)  
Старый 25.06.2018, 13:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

alecto,
Сообщение от alecto
ваш сайт просто незаменимый ресурс по JS!
Он точно так же и ваш!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка событий на динамически созданных объектах Alexey_R jQuery 28 15.02.2017 14:28
Блокировка событий всех дочерних элементов moreo Элементы интерфейса 4 26.05.2012 22:58
Некорректно работает функция для создания элементов exec Общие вопросы Javascript 4 13.07.2010 10:15
Использование одной функции для элементов с разными ID Ferroks Общие вопросы Javascript 10 11.09.2009 07:51
обработчик собития onMouseOver для фрейма Rian Events/DOM/Window 7 06.06.2008 18:48