javascript, jquery. Не включается функция при собитии

229
04 мая 2017, 14:22

Здравствуйте. Не могу понять, почему если я создал функцию выше и потом просто задаю её имя в обработчик событий, то она не работает. но если вписать её полностью заново в обработчик, то все работает.

$(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;
}
});

работает

Answer 1

Вы вызываете функцию moveHeading и, получается, передаете в click ее результат (т.к. в ней нет return, то возвращаемый результат - undefined), а вам нужно передавать саму функцию:

$('#heading').click(moveHeading);
READ ALSO
Hover на изображениях jquery

Hover на изображениях jquery

После наведения мыши на одно изображение ховер эффект воспроизводиться и на всех остальныхКак сделать, чтобы ховер (белый блок с текстом...

301
Как добавить fadeIn эффект?

Как добавить fadeIn эффект?

Привет! Хочу добавить эффект фэйдинга чтобы, когда прокручиваешь страницу вниз элементы начинали появлятьсяНа данный момент в скрипте есть

217
Проверка заполнения всех полей формы

Проверка заполнения всех полей формы

Есть большая форма, содержащая большое количество:

200