【发布时间】:2016-07-21 18:50:15
【问题描述】:
我正在尝试将一个函数作为参数传递给另一个函数。
//Scroll To + Remove Class if exists
$(document).on( "click", "a[href^=\\#]", function () {
$( "html, body" ).animate({
scrollTop: $('section[data-attr-target="'+this.hash.slice(1)+'"]').offset().top }, 300 );
return false;
}, fun());
function fun() {
if(("menu").hasClass("active")) {
$("menu").removeClass("active");
}
}
我对我的职能的期望:
- 点击事件
- 滚动到某个部分
- fun() 启动并检查 $("menu") 是否具有“活动”类,如果是,则将其删除。
fun() 会破坏行为(没有它的函数适用于滚动到元素),但我需要 fun() 来检查 $( "菜单") 元素。
请解释一下我做错了什么。
【问题讨论】:
-
jQuery 的
on()不需要两个回调,您可能想在 beforereturn false; },部分调用该函数,就在动画部分之后,这就是你的真的很想做 -> jsfiddle.net/qxkmygzb -
如果我把 fun() 函数放在“return false”之前,它不会检查类,它不会按照我的理解执行
-
仅供参考:您无需检查任何内容即可删除课程,只需按照我在上面发布的小提琴中的操作即可
-
是的,我知道我可以在“主”函数的代码中编写整个函数。但我想知道如何将我的“检查”功能作为参数添加到现有结构中。当然,如果有可能的话。
-
再一次,参见上面的小提琴,其中动画的回调用于删除类。您不能将您的函数作为第二个回调添加到 click 函数,您将获得的最接近的是作为动画的回调,就像这样 -> jsfiddle.net/qxkmygzb/1
标签: jquery function callback arguments