function Counter({ val, time }) {
const [ currVal, setCurrVal ] = useState(0);
useEffect(() => {
currVal !== val && setTimeout(setCurrVal, time, currVal + 1);
}, [ currVal ]);
return <div>{currVal}</div>;
}
base
- пример.homepage
.Вот если указано return 0; - то программа закончиться.Я правильно понимаю?Только если это return в main().
А если ничего не указать?Она будет в памяти висеть или что?С 1998 года она выполнит return 0 (опять же, справедливо только для main() ) как только достигнет конца функции main().
Т.е. если указываешь 0, то это типа false.Это EXIT_SUCCESS.
А если указать 1?Implementation defined. Обычно работает так же как и EXIT_FAILURE.
To avoid «[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified»:
- Find the ODBC manager in Windows control panel and check the "Drivers" tab. Please note that 64 bit Windows has two different managers for 32 [1] and 64 bit drivers: drivers must match your PHP installation.
- If the required driver doesn't show up there, you need to install it. The free "Microsoft Access Database Engine 2010 Redistributable" package [2] is one of the possibilities for Access and Excel.
- When connecting with odbc_connect(), make sure you are using the exact driver name in the DRIVER parameter: 'Microsoft Access Driver (*.mdb)' will not work if your driver is called 'Microsoft Access Driver (*.mdb, *.accdb)'.
[1] C:\Windows\SysWOW64\odbcad32.exe
[2] www.microsoft.com/en-us/download/details.aspx?id=13255
Пользователи Windows должны включить php_odbc.dll, чтобы использовать этот модуль.
const input = document.querySelector('textarea');
const text = input.value;
const regex = /[^\w\s]|_/g; // регулярное выражение, которое находит все знаки препинания
const sanitizedText = text.replace(regex, ' '); // заменяем знаки препинания на пробелы
const words = sanitizedText.trim().split(/\s+/); // разделяем строку на массив слов
const wordCount = words.length; // получаем количество слов
console.log(wordCount);
var_dump($_POST);exit();
Возможно (и похоже на то) что вы отправляете форму аяксом, а данные передаете в теле как жсон например. Естественно, при этом ловить что либо в пост переменных бесполезно ), тут нужно будет щупать php://input
.btn-menu span {
transition: all .1s linear .23s;
transition: all .1s linear;
<html lang="ru">
<head>
<title>МЯСНОЙ ДАР</title>
<meta charset="UTF-8">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fira+Sans+Extra+Condensed:wght@500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
<link rel="shortcut icon" href="images/xphoto.png" type="image/x-icon">
</head>
<body>
<header>
<div class="HeaderContainer">
<div class="logo"> <img src="images/logo.png" alt=""> </div>
<a href="#" class="item photo"><img src="images/phone.png" alt="" width="45" height="45"></a>
<a href="#" class="item anim">КОМПАНИЯ</a>
<a href="#" class="item anim">ПРОДУКЦИЯ</a>
<a href="#" class="item anim">КЛИЕНТАМ</a>
<a href="#" class="item anim">КОНТАКТЫ</a>
<a href="#" class="item photo"><img src="images/poloski.png" alt="" width="45" height="40"></a>
</div>
</header>
<main>
<div class="container"> <!-- container начало -->
<div class="box">
<div class="slider middle"><!-- Слайдео начало -->
<div class="slides">
<input type="radio" name="r" id="r1" checked>
<input type="radio" name="r" id="r2">
<input type="radio" name="r" id="r3">
<input type="radio" name="r" id="r4">
<div class="slide s1"><img src="images/longkolbas.png" alt></div>
<div class="slide"><img src="images/kolbasa2.png" alt></div>
<div class="slide"><img src="images/kolbasa3.png" alt></div>
<div class="slide"><img src="images/kolbasa4.png" alt></div>
</div>
<div class="navigation">
<label for="r1" class="bar"> </label>
<label for="r2" class="bar"> </label>
<label for="r3" class="bar"> </label>
<label for="r4" class="bar"> </label>
</div>
</div><!-- Сладйер конец -->
</div> <!-- вот закрытый box -->
</div><!-- container конец -->
</main>
<footer class="container">
<a>это футер</a>
</footer>
</body>
</html>
const blockSelector = 'селектор блоков';
const buttonSelector = 'селектор кнопок';
const activeClass = 'класс, показывающий блок';
const blocks = document.querySelectorAll(blockSelector);
const buttons = document.querySelectorAll(buttonSelector);
buttons.forEach((n, i) => {
n.addEventListener('click', () => {
blocks[i].classList.toggle(activeClass);
});
});
const onClick = function({ currentTarget: { dataset: { index } } }) {
this[index].classList.toggle(activeClass);
}.bind(document.querySelectorAll(blockSelector));
document.querySelectorAll(buttonSelector).forEach((n, i) => {
n.dataset.index = i;
n.addEventListener('click', onClick);
});
const blocks = document.querySelectorAll(blockSelector);
const buttons = document.querySelectorAll(buttonSelector);
buttons.forEach(n => n.addEventListener('click', onClick));
function onClick() {
const index = Array.prototype.indexOf.call(buttons, this);
blocks[index].classList.toggle(activeClass);
}
const containerSelector = '...';
), то индексы не нужны. Достаточно от нажатой кнопки подняться до общего предка кнопки и блока, и найти внутри блок (а можно даже и не искать, если добавлять класс контейнеру; конечно, стили придётся в этом случае немного изменить, вместо .блок.класс
будет .контейнер.класс .блок
):const toggleBlock = button => button
?.closest(containerSelector)
?.querySelector(blockSelector)
.classList
.toggle(activeClass);
// можно добавить обработчик клика каждой кнопке индивидуально
document.querySelectorAll(buttonSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => toggleBlock(e.currentTarget));
// или один раз на всю страницу
document.addEventListener('click', e => {
toggleBlock(e.target.closest(buttonSelector));
});