Мой html содержит две формы, перекрывающиеся друг с другом, одну из которых используется как форму добавления, а другая - как форму редактирования. Я использую JQuery, чтобы показать и скрыть их с помощью следующего кода:Почему вы должны обернуть обратный вызов анонимной функцией?
var editForm = $("#edit-form");
var addForm = $("#add-form");
var showEditForm = function() {
editForm.fadeIn(function() {
addForm.fadeOut();
});
};
var showAddForm = function() {
editForm.fadeOut(function() {
addForm.fadeIn();
});
};
Я хотел, чтобы сделать код более компактным, так что я установить fadeOut()
вызов непосредственно на fadeOut()
обратного вызова, делая так:
var showEditForm = function() {
editForm.fadeIn(addForm.fadeOut);
};
var showAddForm = function() {
editForm.fadeOut(addForm.fadeIn);
};
Но этот продукт вызывает ошибку Uncaught TypeError: Failed to execute 'animate' on 'Element': Valid arities are: [1], but 4 arguments provided.
, но почему это не работает?
Вы должны предоставить функцию, чтобы функция fadeout функции более высокого порядка могла ее запускать. этот ответ может варьироваться от моноды до синтаксиса – raam86