Как передать параметры в событийную внешнюю функцию jquery?

Нужно, чтобы при скроле каждый раз прогонялся код с параметрами.

Так не работает:

function my_scroll(a,b){
    console.log(a + b);
};

$(window).scroll(my_scroll(1,2));

Так тоже:

function my_scroll(a,b){
    console.log(a + b);
};

$(window).scroll(my_scroll,1,2);

Ответы (2 шт):

Автор решения: HackerU

Вам необходимо передать функцию, а у вас происходит вызов.

Для решения этой проблемы проще всего обернуть вызов в еще одну функцию.

пример:

function my_scroll(a,b){
    console.log(a + b);
};

$(window).scroll(()=>my_scroll(1,2)); // здесь вызов my_scroll обернут в стрелочную функцию, тем самым она не вызывается, а передается.
→ Ссылка
Автор решения: HackerU

Вот вариант без JQ (на мой взгляд так даже короче):

    function my_scroll(a,b){
        console.log(a + b);
    };
    window.addEventListener('scroll', ()=>my_scroll(1,2));
→ Ссылка