zoukankan      html  css  js  c++  java
  • jquery 表格(展开和折叠列表项)

    HTML:

    View Code
         <ul>
                <li class="address">中国
                    <ul>
                        <li>北京</li>
                        <li>杭州</li>
                        <li class="address">温州
                            <ul>
                                <li>鹿城区</li>
                                <li>瓯海区</li>
                                <li>龙湾区</li>
    
                            </ul>
                        </li>
                    </ul>
                </li>
                <li class="address">美国
                    <ul>
                        <li>华盛顿</li>
                        <li>纽约</li>
                        <li>休斯顿</li>
                    </ul>
                </li>
                <li class="address">英国
                    <ul>
                        <li>伦敦</li>
                        <li>伯明翰</li>
                    </ul>
                </li>
    
            </ul>


    CSS:

             ul{
                    /*在FF和IE8情况下,默认padding-left40px;只用padding-left为10px,可达到预期效果*/
                    padding-left: 10px;
                    /*用360浏览器测试了下(估计IE7也是这个情况,IE6应该没人用了吧,Mic都抛弃了),没有预期效果,需要加上margin-left: 10px;,达到预期效果*/
                    /*list-style: none;*/
                    margin-left: 10px;
                }
    
    
                .jia{
                    list-style-image:url(jia.jpg);
                }
                .jian{
                    list-style-image: url(jian.jpg);
                }
                .none{
                    /*没有图片样式,即为默认样式*/
                    list-style-image:none;
                }

    Jquery:

                    $('li.address').addClass('jia');
    //              在FF和IE8情况下, $('li.address').children('ul').addClass('none'),可达到预期效果。除了li.address,其他的均是默认样式。如果把class(none)的属性改为list-style:none,则FF和IE8同样达到预期效果,但是360没有,出现每个列表项前都有一个加号
                    $('li.address').children('ul').addClass('none');
    //               在360下达不到,需要加入$('li.address').children().css('list-style', 'none'),如果把class(none)的属性改为list-style:none,如果加下面的语句,360同样没有效果,也是所有的列表项前有个加号。需先把class(none)的属性改为list-style-image:none,再list-style:none。似乎必须要回归原始的样式,才能清除样式。如果开始就改变成其他的样式图片,然后再list-style:none。则360下没有预期效果,依然是所有的列表项前出现加号。
                    $('li.address').children().css('list-style', 'none');
                    $('li.address').children().hide();
                    $('li.address').each(function(index){   
                        $(this).click(function(event){
    //                  alert索引看看,会发现点击'温州'的时候,会先弹出1然后再弹出0,在后再展开内容。这里有个事件冒泡。故下面加了event.stopPropagation();
    //                    alert(index);
    //                    event保存着事件对象
    //                   event.target保存着发生时间的目标元素.可以确定首先接收到事件的元素(即实际被点击的元素).this引用的是处理事件的元素.
    //                    故如果 处理事件的元素等于初始就定义的事件对象的实际接收者
                            if(this==event.target){
                                if($(this).is('.jia')){
                                    $(this).children().show();
                                    $(this).removeClass('jia');
                                    $(this).addClass('jian');
                                }else{
                                    $(this).children().hide();
                                    $(this).removeClass('jian');
                                    $(this).addClass('jia');
                                } 
    //                           event.stopPropagation()终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。
    
                                event.stopPropagation();
                            }
                        });
                    });

     截图:

  • 相关阅读:
    Java中用Apache POI生成excel和word文档
    openlayers实现画圆
    openlayers实现wfs属性查询和空间查询
    jquery自定义控件拖拽框dragbox
    基于openlayers实现聚类统计展示
    openlayers实现在线编辑
    openlayers之selectfeature
    J
    HDU-1051Wooden Sticks
    HDU-1087Super Jumping! Jumping! Jumping!
  • 原文地址:https://www.cnblogs.com/wenzichiqingwa/p/2802777.html
Copyright © 2011-2022 走看看