javascript - 脚本性的blindUp/blindDown问题

标签 javascript prototypejs effects scriptaculous

我编写了一个小脚本,根据“显示”属性观察点击和上/下百叶窗,并向blindUp 添加了一个队列到结束参数,以避免更严重的显示问题。这显然不是实现此目的的方法,因为如果在效果中间调用单击事件,则会出现显示错误。这是代码:

<script type="text/javascript">
    $$('#leftnav_container #modules h2').each(function(El){
            El.observe('click',function(){
                container = this.next('div');
                display = container.getStyle('display');
               if(display == 'none'){
                    container.blindDown({duration: 0.3});
                }else{
                    container.blindUp({duration: 0.3, queue: 'end'});
                }

            })
    });
</script>

同样,问题是我依赖“显示”。正确的方法是什么?

最佳答案

这应该会简化它

$$('#leftnav_container #modules h2').invoke('observe','click',function(){
            container = this.next('div');
            Effect.toggle(container , 'blind', { duration: 0.3 });
});

首先,如果您仅对从 $$() 返回的数组中的所有元素运行一个方法那么你可以使用PrototypeJS方法invoke() .

http://api.prototypejs.org/language/Enumerable/prototype/invoke/

然后Effect.toggle()将检查元素是否可见并执行适当的向上/向下效果。

尝试一下,让我知道它是否适合您。

关于javascript - 脚本性的blindUp/blindDown问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471510/

相关文章:

javascript - 方法中的默认变量?

javascript - 如何在 Javascript 函数中停止执行 Click 事件?

javascript原型(prototype)问题

jquery - 将 jQuery 效果应用于纯 2 级 CSS 菜单

javascript - 使用 iframe 时 Ext js 动态加载库

javascript - 根据多个条件过滤对象的JSON数组

javascript - JS - Google 图表 - 无法读取未定义的属性 'getChartLayoutInterface'

javascript - 将鼠标悬停在 div 上会显示隐藏的 div - jquery 到原型(prototype)的转换

c# - 如何在数据网格控件中利用 WPF 效果?

java - libgdx 粒子编辑器的多种用途