本帖最后由 a495303569 于 2012-08-26 00:11:50 编辑

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>测试</title>
    <script type="text/javascript" language="javascript" src="你的jQuery路径"></script>
    <style type="text/css">
        .container{width:200px;}
        .container ul{ list-style:none;float:left;width:100%;border:1px solid #bfbfbf;text-align:left;}
        .container ul li{ list-style:none;float:left;width:100%;text-align:left;padding-left:5px;}
    </style>
    <script type="text/javascript">
    $(function(){
        $('.container ul li').append(function(i){return '<div class="content" style="display:none;"></div>'})
        $('.container ul li').bind({
                "click":function(){
                    $(this).parent().find('.content').hide();//如果不需要只保持最多打开一个,这行注释掉
                    var content="这里是标题"+parseInt($(this).index()+1)+"的内容";//这里为了测试方便做个标记而已,实际运用中可用ajax异步加载内容,或者你内容已经存在的话就不用了
                    $(this).find('.content').html(content).show('slideout');
                },
                "blur":function(){
                    $(this).find('.content').hide();
                }
        })
    })
    </script>
    </head>
    <body>
    <div class="container">
    <ul>
    <li>这里是标题1</li>
    <li>这里是标题2</li>
    </ul>
    </div>
    </body>
    </html>
      

  2.   

     $('.container ul li').append(function(i){return '<div class="content" style="display:none;"></div>'});上面这句你也可以直接写成
     $('.container ul li').append('<div class="content" style="display:none;"></div>');原本是想给每个内容层附加一个不面的ID的,后面发现不需要。
      

  3.   

    这样写更好些:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>测试</title>
    <script type="text/javascript" language="javascript" src="你的jQuery路径"></script>
    <style type="text/css">
        .container{width:200px;}
        .container ul{ list-style:none;float:left;width:100%;border:1px solid #bfbfbf;text-align:left;}
        .container ul li{ list-style:none;float:left;width:100%;text-align:left;cursor:pointer;}
    </style>
    <script type="text/javascript">
    $(function(){
        var i=-1;
        $('.container ul li').bind({
                "click":function(){
                    if(!$(this).find('.content')[0]){$(this).append('<div class="content" style="display:none;"></div>')}
                    if($(this).index()!=i){
                        $(this).parent().find('.content').hide();//如果不需要只保持最多打开一个,这行注释掉
                        var content="这里是标题"+parseInt($(this).index()+1)+"的内容";//这里为了测试方便做个标记而已,实际运用中可用ajax异步加载内容,或者你内容已经存在的话就不用了
                        $(this).find('.content').html(content).show('slideout');
                        i=$(this).index();
                    }
                }
        })
    })
    </script>
    </head>
    <body>
    <div class="container">
    <ul>
    <li>这里是标题1</li>
    <li>这里是标题2</li>
    </ul>
    </div>
    </body>
    </html>