首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用js在php中动态显示/隐藏div控件?

用js在php中动态显示/隐藏div控件?
EN

Stack Overflow用户
提问于 2009-10-15 05:57:02
回答 2查看 1.4K关注 0票数 1

我有一些SQL输出,我想格式化成一个可折叠的div。问题是我找到的所有显示/隐藏div的JS代码都不是真正用于动态实例的,它们都需要预先分配给特定的div。由于我的结果可能在1-30之间有所不同,所以这不是一个好的选择。

我的问题。有没有一种简单的方法来动态地为不同数量的层生成显示/隐藏控件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-15 06:19:03

代码语言:javascript
复制
<div id="CollapsiblePanel1" class="CollapsiblePanel">
  <div class="CollapsiblePanelTab" tabindex="0">Tab</div>
  <div class="CollapsiblePanelContent">Content</div>
</div>
<script type="text/javascript">
<!--
var CollapsiblePanel1 = new Spry.Widget.CollapsiblePanel("CollapsiblePanel1");
//-->
</script>
票数 2
EN

Stack Overflow用户

发布于 2009-10-15 06:25:09

实际上,使用mootools (或者jquery )非常容易。

您只需为所有生成的div提供相同的类,并选择所有这些div,然后应用可折叠行为。

这是一个用mootools为我们的一个项目编写的小脚本,可能会让你上路。它获取所有带有以toggle_开头的类的元素,下划线后面的部分是这个控件应该折叠的div的id。

因此,您将使用'toggle_mydiv1‘类生成一个按钮,该按钮将切换id为'mydiv1’的div

通过这种方式,您可以生成任意数量的元素,并使用一个脚本为所有元素分配行为。

用mootools编写:

代码语言:javascript
复制
window.addEvent('domready', function(){

    var clickAbles = $$('form[class^=toggle_]');
    clickAbles.each(function(el){
        var _class = el.get('class').split(' ');
        var clickElement = _class[0].replace('toggle_','');
        clickElement = $$('ul.buttons li.'+clickElement+' a');

        if(clickElement){

            var myFx = new Fx.Tween(el,{duration: 'long'});
            var myFx2 = new Fx.Tween(el,{duration: 'long'});
            el.store('height', el.getSize().y);
            el.store('state', 'close');
            el.setStyles({'display': 'none', 'height': 0});

            var todoLists = el.getElements('ul.todo_list');
            clickElement.addEvent('click', function(e){
                e.stop();

                if(el.retrieve('state') == "close"){
                    el.setStyle('display','block');
                    myFx.start('height', [0,el.retrieve('height')]);

                    myFx.addEvent('complete', function(){
                        todoLists.setStyles({'overflow': 'auto'});
                        el.store('state', 'open');
                    });
                } else {
                    if(el.retrieve('state') == "open"){
                        myFx2.start('height', [el.retrieve('height'),0]);
                        myFx2.addEvent('complete', function(){
                            el.setStyles({'display': 'none', 'height': 0});
                            todoLists.setStyles({'overflow': 'hidden'});
                            el.store('state', 'close');
                        });
                    }
                }
            });
        }

    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1570522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档