Как React компоненту позволить запустить jQuery код из файла main.js?
Есть такой код в файле main.js
$('.category-menu > li').hover(function(e) {
$(this).addClass('active')
e.preventDefault()
})
$('.category-menu').mouseleave(function(e) {
$('.category-menu li').removeClass('active')
e.preventDefault()
})
ему нужно работать в компоненте, но место этого ничего. Кто сталкивался с подобным?
Если main.js - это сборка (webpack, gulp и т.д.) то
npm install jquery --save
В стартовом файле сборки:
let $ = require('jquery');
window.$ = window.jQuery = $;
из компонентов реакта вызывается как обычно, но надо учесть, что на момент вызова jQuery с селекторами некоторые элементы могут быть просто не отрисованы, поэтому селекторы ничего не находят. Все зависит от конкретного случая. Но лучше конечно не смешивать, иначе можно получить непредсказуемые эффекты
Если main.js - это просто скрипт, содержащий вызовы jQuery, то добавьте на вашу страницу загрузку jQuery из локального каталога или с CDN перед подключением скрипта main.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="/js/main.js"></script>
или (если есть jquery на локальном сервере)
<script src="/js/jquery.min.js"></script>
<script src="/js/main.js"></script>
Как данный код понимает, что я нажимаю на именно данный таб? Он должен выводить модальное окно при нажатии на кнопку в табе
Получаю значение буферизации следующей функцией по событию progress