我使用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)”链接,它应该向下滑动到顶部面板。)但是只有按钮才是可见总是(子面板)向下滑动并且可见,实际的面板内容不会显示。
有什么想法吗?如果你能用简短的解释留下答案,那就太棒了。
非常感谢
答案 0 :(得分:2)
这看起来像是一个范围问题。您在匿名函数中声明mySlide
,其范围将仅限于该函数。稍后,当单击$('toggle')时,触发的事件超出了该函数的范围,因此它无权访问mySlide
。
快速修复(如果你不介意使用全局变量)可能会在主javascript中声明var mySlide=null
,以便你有一个闭包,然后将你当前的var mySlide=new Fx.Slide(...)
更改为{{1} }}
(或者它可能是完全不同的东西......)