let parent = el.closest('.promo');
let copyText = parent.querySelector('.promo-text')
const result = [].indexOf.call(this.children, event.target)
[]
[].indexOf
[].indexOf.call
indexOf()
this.children
, а хочется.[]
и его метод indexOf
call()
(подробнее)indexOf
в качестве this
(где искать) — this.children
,event.target
event.target
среди this.children
-1
, если не нашлось. var m_top = $('.go').offset().top;
запомнит оффсет только для самого первого элемента найденного по селектору, поэтому и обрабатывается только он.$(document).ready(function(){
var observer = new IntersectionObserver(function(entries){
entries.forEach(function(entry){
if(entry.isIntersecting) {
$(entry.target).addClass('active bounceInLeft');
} else {
$(entry.target).removeClass('active bounceInLeft');
}
});
}, {threshold: 0.1});
$('.go').each(function(){
observer.observe(this);
});
});
<video controls preload="none" poster="one-does-not-simply-placeholder.jpg">
<source src="one-does-not-simply.webm" type="video/webm">
<source src="one-does-not-simply.mp4" type="video/mp4">
</video>
forEach
и for...of
. Откройте документацию и разберитесь.forEach
нельзя прервать (throw
не в счёт), в то время как в теле for...of
можно использовать break
и return
(да, в forEach
тоже можно использовать return
, но эффект будет не тот - уход на следующую итерацию, т.е., то же, что и continue
для for...of
).forEach
можно назначать контекст выполнения (через второй параметр, коллбек при этом не должен быть стрелочной функцией).forEach
отложить запуск следующей итерации до окончания выполнения асинхронных операций, запущенных в текущей итерации. В случае for...of
можно добавить async
в объявление функции, внутри которой он находится, и использовать await
.Symbol.iterator
, то это ещё не означает, что и forEach
там тоже присутствует. Впрочем, тут могут быть варианты одолжить чужой forEach
:Array.prototype.forEach.call('ABC', alert);
NodeList.prototype.forEach.call(document.scripts, console.log);
Когда начинал, везде предлагали брать готовое решение, а не изобретать свое чудо...Есть две полярных и при этом правильных точки зрения.
1. Экономия времени. Достаточно написать и после интегрировать в свои проекты..."Достаточно написать" обычно для велосипедов измеряется годами, с учётом всё новых и новых требований и найденных багов.
2. Правильное решение. Соглашусь, но если практиковать свои навыки, разве у вас не получится также?Опять же - речь про годы практики.