filter.update.country()
this
является объект update
, а не filter
.class Filter {
static sex = null;
static player = null;
static country = null;
static updateSex() {
Filter.sex = document.querySelector("#sex").value;
}
static updatePlayer() {
Filter.player = document.querySelector("#player").value;
}
static updateCountry() {
Filter.country = document.querySelector("#country").value;
}
}
Filter.updatePlayer();
console.log(Filter.player);
class Filter {
constructor() {
this.sex = null;
this.player = null;
this.country = null;
}
updateSex() {
this.sex = document.querySelector("#sex").value;
}
updatePlayer() {
this.player = document.querySelector("#player").value;
}
updateCountry() {
this.country = document.querySelector("#country").value;
}
}
const filter = new Filter();
filter.updateCountry();
console.log(filter.country);
class Filter {
fields = {
country: null,
}
update = {
caller: this,
country() {
this.caller.fields.country = "123";
}
}
}
const filter = new Filter();
filter.update.country();
console.log(filter.fields.country);
handleChangeInfoMain: (value: string) => void
$.ajax({
url: 'www.expample.ru/file.php',
type: 'POST',
data: { data: getSaveData() }, // переменная data не нужна
// ...
})
$.ajax({
url: 'www.expample.ru/file.php',
type: 'POST',
data: { data: $(form).serialize() },
// ...
})
$.ajax({
url: 'www.expample.ru/file.php',
type: 'POST',
data: { data: new FormData(form) },
// ...
})
const $form = $("#idForm");
$form.on('submit', function(evt) {
evt.preventDefault(); // отмена обычной отправки
$.ajax({
type: "POST",
url: $form.attr('action'),
data: $form.serialize(),
// ...
const form = document.getElementById('myForm');
form.addEventListener('submit', function(evt){
evt.preventDefault();
fetch(form.action, {
method: 'POST',
body: new FormData(form)
});
});
const selectorString = `.c_ipt_surname${i}`
console.log({ selectorString })
const surnameElement = $(selectorString)
console.log({ surnameElement })
const surname = surnameElement.val()
console.log({ surname })
В чём отличие от присваиваниятолько в том, что сохранили значение, которое возвращает вызов. Для этой функции это значение некий уникальный id, по которому, при необходимости, можно отменить вызов черезa = requestAnimationFrame(anim)
и от обычного вызоваrequestAnimationFrame(anim)
?
cancelAnimationFrame()
, но в приведённом коде это значение никак не используется.Почему идёт каждый раз вызов функции anim()
Первый раз потому, что в конце кода стоит вызов requestAnimationFrame()
. Последующие — потому, что в конце очередной отработки anim() есть вызов a = requestAnimationFrame(anim);
при условии, что счётчик не превышен. const foo = () => {
const max = 439;
let counter = 0;
const next100 = () => {
for (let i = 0; i < 100 && counter <= max; i += 1, counter += 1) {
console.log(counter);
}
if (counter !== max) {
setTimeout(next100, 4000);
}
}
setTimeout(next100, 0);
}
foo();
.then(onFulfilled, onRejected)
вторая функция «ловит» ошибку и обрабатывает её, поэтому выполнение не прерывается..catch()
в конце цепочки.// ...
, function(reason) {
console.log(reason); // Ошибка! (Тут Скрипт должен прервать дальнейшее выполнение!)
return Promise.reject(reason); // передаём пас с ошибкой дальше по цепочке
})
и всё равно добавьте в конце блок .catch()
document.querySelector("#section__gallery-select-category option[value='0']").remove();
onMouseEnter
).null
.const [currentActive, setActive] = useState()
className={currentActive === el ? "active" : null}
onMouseEnter={() => setActive(el)}