Во-первых, создать функцию с кодом, который вы хотите запустить:
function complete() {
$('#someElement').hide(500);
}
Затем передать эту функцию в том, когда вы звоните Аниматор:
Animator(obj, aniArgs, duration, aniEasArgs, complete);
Или, вы можете поместить функцию инлайн :
Эти обои работают одинаково, вы можете использовать любой стиль в зависимости от того, что делает ваш код легче читать.
В любом случае, изменить код аниматор:
if(completeFunction) {
completeFunction();
};
Или, вы часто будете видеть, что так написано:
completeFunction && completeFunction();
Они оба делают то же самое. Это просто вопрос вкуса, который вы используете, просто подумал, что я упомянул оба варианта, чтобы вы узнали их, когда увидите их.
Обратите внимание, что тест !== null
здесь не требуется, и на самом деле это не то, что вы хотите. Это потому, что если вызывающий абонент не переходит в completeFunction
, значение этой переменной будет undefined
, а не null
, поэтому ваш тест не будет работать. Интересно, что в этом случае вы можете использовать != null
, потому что это будет проверять как null
, так и undefined
и относиться к ним одинаково. Но на самом деле вам просто не нужен этот явный тест вообще, если единственное, что вы проверяете, - это то, что вызывающий абонент предоставил обратный вызов completeFunction
или нет.
Просто позвоните 'completeFunction()'? – Menztrual
Я буду использовать эту функцию для вызова различных анимаций для разных элементов. Итак, Plugin.Animator (элемент, {'opacity': 0.5}, 500, {'opacity': 'linear'}, "....") ... где находится информация обратного вызова (например, $ ('# someElement '). hide (500) нужно было бы пойти. Я не уверен, что я следую за вами, вызвав функцию completeFunction()? – Aaron
как «Аниматор» называется –