MooTools Top Panel没有出现

时间:2009-09-09 17:20:22

标签: javascript mootools

大家啊,

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

我希望它在页面加载时显示,表示已加载index.html。 我只是通过将相应的javascript添加到index.html来实现这一目的:

<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>

(当然这也是顶级小组本身)  当您点击此顶部面板中的链接,新页面will be loaded into a specified div然后时,顶部面板应隐藏。

我认为你可以通过添加

来做到这一点
var mySlide = new Fx.Slide('top-panel').hide();

mySlide.hide(); 

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

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

有什么想法吗?如果你能用简短的解释留下答案,那就太棒了。

非常感谢

1 个答案:

答案 0 :(得分:2)

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

快速修复(如果你不介意使用全局变量)可能会在主javascript中声明var mySlide=null,以便你有一个闭包,然后将你当前的var mySlide=new Fx.Slide(...)更改为{{1} }}

(或者它可能是完全不同的东西......)