<input [class.loading]="loading" type="button">
порываются сделать <app-my-button [loading]="loading"></app-my-button>
и прилепить ради этого целый компонент, то это уже вообще реакт головного мозга.@media @tablet {
padding: 0 9px 0 27px;
display: none;
margin-right: 0;
pointer-events: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
pointer-events: none;
<a class="tags__item" href="#0">First element</a>
<a class="tags__item" href="#0">Second element</a>
<a class="tags__item" href="#0">Third element</a>
перестают реагировать на события. const users = [];
// ...
const server = net.createServer((socket) => {
const newUser = {};
newUser.socket = socket;
newUser.id = results[0].id; // ID пользователя из бд -- не знаю уж где вы его возьмете
newUser.nickname = results[0].nickname;
users.push(newUser);
c.on('data', function(data) {
});
const randomDelay = () => new Promise(resolve => setTimeout(resolve, Math.random()*1000));
(async function() {
let counter = 0;
while (true) {
console.time('timer');
await randomDelay();
console.timeEnd('timer');
if (counter++ > 20) {
break;
}
}
})();
есть ли какие-то готовые решения, библиотеки на базе WebRTC?
const servPrice = {
lin: 0,
clean: 0,
};
/**
* @param {HTMLInputElement[]} elements
* @param {HTMLInputElement} valueElement
* @param {{lin: number; clean: number}} servPrice
* @param {'lin'|'clean'} propName
* @param {Function} done
*/
function act(elements, valueElement, servPrice, propName, done) {
if (elements.length === 0) {
return;
}
elements.forEach((element) => {
element.addEventListener('change', () => {
switch (element.value) {
case 'Yes':
servPrice[propName] = parseInt(valueElement.getAttribute("data-price"), 10);
break;
case 'No':
servPrice[propName] = 0;
break;
default:
}
done();
});
});
}
act(
[...document.querySelectorAll('input[name="Linen_Service"]')],
document.querySelector('input[name="linen_price"]'),
servPrice,
'lin',
renewDatas,
);
act(
[...document.querySelectorAll('input[name="Cleaning_Service"]')],
document.querySelector('input[name="cleaning_price"]'),
servPrice,
'clean',
renewDatas,
);
$('#modal_form1').submit(function(evt){
if (this.isSubmitted) {
evt.preventDefault();
return false;
}
this.isSubmitted = true;
var form = $(this);
var data = form.serialize();
form.find('input[type="submit"]').attr('disabled', 'disabled');
$.ajax({
type: "POST",
url: "mailer/smart3.php",
data: data
}).done(function() {
form.find("input").val("");
$('#callModal1').modal('hide');
$("#modal_form1").trigger("reset");
});
return false;
});