Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何声明使用bind作为Jquery中的偶数处理程序调用单独的函数_Jquery_Jquery Pagescroller - Fatal编程技术网

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

如何声明使用bind作为Jquery中的偶数处理程序调用单独的函数,jquery,jquery-pagescroller,Jquery,Jquery Pagescroller,我有一个这样的代码块,可以很好地工作: $('a.page-scroll').bind('click', function(event) { var $anchor = $(this); $('html, body').stop().animate({ scrollTop: $($anchor.attr('href')).offset().top }, 1500, 'easeInOutExpo'); event.preventDefault();

我有一个这样的代码块,可以很好地工作:

$('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()中的事件处理程序:

//页面滚动功能
$.fn.pageScroll=函数(){
////创建一个新的jQuery.Event对象,但不使用“new”操作符。
var事件=$.event(“单击”);
//防止浏览器作为默认事件操作
event.preventDefault();
var$anchor=$(此);
$('html,body').stop().animate({
scrollTop:$($anchor.attr('href')).offset().top
},1500年,“easeInOutExpo”);
event.preventDefault();
};
//页面滚动功能的jQuery-需要jQuery插件
//为标记的page scroll类上的单击事件调用pageScroll()函数
$('a.page-scroll').bind('click',$().pageScroll(事件));

代码的问题在于您执行了“页面滚动”功能。 这样,您就可以向绑定函数发送“pageScroll”函数的响应,而不是指向该函数的指针

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

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

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

你的答案是正确的!非常感谢。我对JQuery的概念并不牢固。我仍然不明白从pageScroll(事件)更改为仅pageScroll如何使整个工作正常。我想我必须在bind()中加入一个“回调函数”。Bind('click',$().pageScroll()不完全使用回调,但仍然使用函数来执行;执行的结果被用作Bind()的参数。该参数是一个事件处理程序。现在我的问题是:在Javascript/Jquery中,我们应该如何调用另一个函数中的另一个函数?这只是一个语法规则吗?通过放置“$().pageScroll()”(注意结尾处的()),您可以执行“PateColl”函数,并将执行返回的值发送给“bind”函数,而不使用'()最后,发送函数iteslf。
$('a.page-scroll').bind('click', $().pageScroll);