var items = document.querySelector('.page-content');
я вешаю обработчик на родителя, затем ловлю на каком элементе происходит событие. когда событие наступает - нужно снять обработчик. а он не снимается. подозреваю, что проблема в передаче функции через handler в addEventLiustener. |
Dilettante_Pro,
строка 1 и строка 5 ??? |
Dilettante_Pro,
я и не передаю, всего лишь отслеживаю на каком элементе произошло событие, и при всплытии срабатывает обработчик. на этом этапе у меня все работает. проблема только в снятии события. пример выше у меня не работает ни на сайте, ни после перетягивания в редактор :( стурктура элементов в вашем примере была правильная page-content - родитель item-actions__cart - вложенные элементы |
рони, спасибо, я уже заметил.
Не снимается.
<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>
|
Вот так снимается
<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,
да, у меня тоже самое происходит. событие срабатывает, но снять его не могу. |
alecto,
Пост 25 видели? |
да, теперь увидел.
решение оказалось очень простым. спасибо огромное, ваш сайт просто незаменимый ресурс по JS! |
alecto,
Цитата:
|
| Часовой пояс GMT +3, время: 18:24. |