我有一个代码块可以正常工作:
$('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));
答案 0 :(得分:0)
代码的问题在于您执行'pageScroll'功能。 通过它,您可以向bind函数发送'pageScroll'函数的响应,而不是指向函数的指针。
所以基本上你需要做的就是替换它:
$('a.page-scroll').bind('click', $().pageScroll(event));
用这个
$('a.page-scroll').bind('click', $().pageScroll);