Здравствуйте. Не могу понять, почему если я создал функцию выше и потом просто задаю её имя в обработчик событий, то она не работает. но если вписать её полностью заново в обработчик, то все работает.
$(document).ready(function(){
var leftOfSet = 0;
function moveHeading() {
$('#heading').offset({left: leftOfSet});
leftOfSet = leftOfSet + 50;
if(leftOfSet > 200) {
leftOfSet = 0;
}
}
$('#heading').click(moveHeading());
});
при:
$('#heading').click(function moveHeading() {
$('#heading').offset({left: leftOfSet});
leftOfSet = leftOfSet + 50;
if(leftOfSet > 200) {
leftOfSet = 0;
}
});
работает
Вы вызываете функцию moveHeading и, получается, передаете в click ее результат (т.к. в ней нет return, то возвращаемый результат - undefined), а вам нужно передавать саму функцию:
$('#heading').click(moveHeading);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей