Javascript MooTools顶部面板未出现

Javascript MooTools顶部面板未出现,javascript,mootools,Javascript,Mootools,我使用mootools使用滑动顶面板(对于方向,代码基本相同) 我希望它在加载页面时显示,即加载index.html。 我通过向index.html添加相应的JavaScript实现了这一点: <script type="text/javascript"> window.addEvent('domready', function(){ var mySlide = new Fx.Slide('top-panel'); $('toggle').

我使用mootools使用滑动顶面板(对于方向,代码基本相同)

我希望它在加载页面时显示,即加载index.html。 我通过向index.html添加相应的JavaScript实现了这一点:

<script type="text/javascript">
    window.addEvent('domready', function(){
    var mySlide = new Fx.Slide('top-panel');
    $('toggle').addEvent('click', function(e){
    e = new Event(e);
    mySlide.toggle();
    e.stop();
    });
    });
</script>

在一些JavaScript中。我认为它应该执行,当-javascript将内容加载到div中后,我尝试添加上面引用的javascript和ahah.js中mySlide.hide()的两个变体。(插入ahahDone(),位于最后一个getElementById之后)

使用此设置,我获得以下渲染。(这是在单击将html文件中的内容加载到div中的相应链接并单击页面顶部的“更多(mehr)”链接(该链接应向下滑动到顶部面板)后进行的。)但只有始终可见的按钮(子面板)向下滑动并可见,实际的面板内容不会显示


有什么想法吗?如果您能留下一个简短解释的答案,那就太好了。

这看起来像是一个范围界定问题。在匿名函数中声明
mySlide
,其作用域将限于该函数。稍后,单击$('toggle')时,触发的事件超出该函数的范围,因此它无法访问
mySlide

快速修复(如果您不介意使用globals)可以在主javascript中声明
var mySlide=null
,这样您就有了一个闭包,然后将当前的
var mySlide=new Fx.Slide(…)
更改为
mySlide=new Fx.Slide(…)


(或者可能是完全其他的东西…

范围界定?我不这么认为,这里不行。事件函数应该继承父函数的变量。他的问题是他使用了Fx.Slide,这是一个mootools 1.11方法,但在1.2中被弃用(他也使用了它,因此它覆盖了类)。当然,事件函数将从其父函数继承变量。但相反的情况正在这里发生。他正在事件函数内部创建mySlide,并尝试稍后从外部访问它。
var mySlide = new Fx.Slide('top-panel').hide();
mySlide.hide();