我是 javascript 的新手。我是一名 UX 设计师,我正在尝试在我的个人网站中使用一些代码。到目前为止,一切进展顺利,但我遇到了一个谷歌到目前为止还没有帮助我解决的错误。
我正在做的是有一个执行以下操作的按钮:
- 单击时,它会统计一个带有回调的 .toggle。
- 回调的第一部分使用 .slideDown 打开一个部分并向下滚动以显示隐藏的内容
- 同时,它会将部分的顶部移动到距页面顶部 50px 的位置,无论您单击它时它在哪里。这就是隐藏内容现在填充页面的原因。
这部分工作正常,没有错误。这是我的问题。
- 在回调中,我希望它使用 .slideUp 再次关闭内容区域。这工作正常。
但是当我再次尝试使用 scrollTop: 时,我得到了这个错误:
未捕获的类型错误:对象 # 的属性“顶部”不是函数
这是我的咖啡脚本:
jQuery(document).ready theExpander = ->
jQuery("#expander").toggle (->
# first callback to slide it down
jQuery(".expanding").slideDown 1000
jQuery(this).toggleClass "darker"
jQuery("html, body").animate
scrollTop: jQuery(this).offset().top - 50
, 600
jQuery(".more").addClass "hidden"
jQuery(".less").addClass "shown"
), ->
# second callback to slide it up
jQuery(".expanding").slideUp 1000
jQuery(this).toggleClass "darker"
jQuery("html, body").animate
scrollTop: jQuery(this).offset().top 200
, 600
jQuery(".more").removeClass "hidden"
jQuery(".less").removeClass "shown"
该错误出现在第二次单击启动回调的按钮上。我不知道为什么会这样。我不能让回调使用相同的 scrollTop 两次吗?
有人知道我在这里做什么吗?如果我在第二次回调中删除这些行,它可以正常工作:
jQuery("html, body").animate
scrollTop: jQuery(this).offset().top 200
, 600
我从哪里开始?我是否需要在第二次回调中重新识别Property 'top' of object #<Object> is not a function
错误或遗漏的 ID?
我是通过极端的反复试验来写这篇文章的,这是我做过的第一次回调。如果有人能指出我的方式的错误,将不胜感激。