如何在 Jquery 中声明使用绑定来调用单独的函数作为偶数处理程序

how to declare use bind to call a separate function as even handler in Jquery

我有一段代码可以正常工作:

$('a.page-scroll').bind('click', function(event) {
    var $anchor = $(this);
    $('html, body').stop().animate({
        scrollTop: $($anchor.attr('href')).offset().top
    }, 1500, 'easeInOutExpo');
    event.preventDefault();
});

现在我想稍微操作一下代码:创建一个 pageScroll 函数,让它成为 bind() 中的事件处理程序:

//page scroll function 
$.fn.pageScroll = function(){

    ////Create a new jQuery.Event object without the "new" operator.
    var event = $.Event( "click" );
    // prevent browser to operate as default on the event
    event.preventDefault();

    var $anchor = $(this);
    $('html, body').stop().animate({
        scrollTop: $($anchor.attr('href')).offset().top
    }, 1500, 'easeInOutExpo');
    event.preventDefault();
};
// jQuery for page scrolling feature - requires jQuery Easing plugin
// call pageScroll() function for click event on page-scroll class of <a> tag

$('a.page-scroll').bind('click', $().pageScroll(event));

您的代码的问题在于您执行了 'pageScroll' 函数。 通过这种方式,您将 'pageScroll' 函数的响应而不是指向该函数的指针发送给绑定函数。

所以基本上你需要做的就是替换这个:

$('a.page-scroll').bind('click', $().pageScroll(event));

有了这个

$('a.page-scroll').bind('click', $().pageScroll);