zoukankan      html  css  js  c++  java
  • 动态生成li标签,并设置点击事件

    今天要解释的是如下界面

                                     

    主要实现了:

    1.模拟后台的json数据,动态生成li标签

    2.导航栏的下划线

    3.给li标签右边设置图片

    4.动态生成的li标签,设置选中的li的点击事件,将右边的图片换掉

    完整代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">-->
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <title>页面一</title>
        <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
        <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    
        <style type="text/css">
            body{
                margin: 0;
                padding: 0;
                height: 100%;
                background: gainsboro;
            }
            .wrap{
                height: 100%;
            }
    
            #nav ul{
                margin: 10px;
            }
            #title{
                width: 100%;
                height: 100px;
                background-color: red;
            }
    
            #nav{
                width: 100%;
                height: 20%;
                background-color: white;
            }
            #nav li{
                display: inline-block;
                width:25%;
                height:20%;
                float: left;
    
            }
            #nav li a{
                color: #0f0f0f;
                text-align: center;
                font-size: 40px;
            }
            #nav ul li a:hover{
                color:red;
            }
    
            /*通过span设置下划线*/
            #nav ul li a:hover span{
                padding-bottom: 17px;
                border-bottom:  2px solid ;
            }
    
            .item{
                padding: 40px;
                margin-top: 40px;
                margin-right: 40px;
                margin-bottom: 40px;
                border-radius: 25px;
    //给li标签右边设置图片 background: red url('../2.png') no-repeat right center; } .i1{ padding: 40px; margin-top: 40px; margin-right: 40px; margin-bottom: 40px; border-radius: 25px; background: red url('../1.png') no-repeat right center; } </style> </head> <body> <div class="wrap"> <div id="title"> 我是标题 </div> <div id="nav"> <ul class="nav nav-bar"> <li><a href="#" onclick="show1()"><span>个人资料</span></a></li> <li><a href="#" onclick="show2()"><span>信息</span></a></li> <li><a href="#" onclick="show3()"><span>产品兑换</span></a></li> <li><a href="#" onclick="show4()"><span>兑换历史</span></a></li> </ul> </div> <div id="content" style="font-size: 40px"> <ul id="list" style="list-style: none "> </ul> </div> </div> </body> <script> function show1() { //var obj = jQuery.parseJSON('{"name":"John","age":"20"}'); //第一种 //$("#list").html("<table><tr><td>" + obj.name + "</td><td>" + obj.age + "</td></tr></table>"); //第三种 // var data = [{"name":"张三", "age":"21"},{"name":"李四", "age":"21"},{"name":"王五", "age":"21"}]; // for(var i=0;i<data.length;i++){ // var a = "<li>姓名:" + data[i].name + ",年龄: "+ data[i].age +"</li>"; // $("#list").append(a); // } //第二种 $.ajax({ url: 'data1.json', //在后文后有元数据 type: 'GET', dataType: 'json', timeout: 1000, cache: false, beforeSend: LoadFunction, //加载执行方法 error: erryFunction, //错误执行方法 success: succFunction //成功执行方法 }) function LoadFunction() { $("#list").html('加载中...'); } function erryFunction() { alert("error"); } function succFunction(tt) { $("#list").html(''); // eval将字符串转成对象数组 // var json = { "id": "10086", "uname": "zhangsan", "email": "zhangsan@qq.com" }; // json = eval(json); // alert("===json:id=" + json.id + ",uname=" + json.uname + ",email=" + json.email); var json = eval(tt); //json数组 var str=""; $.each(json, function (index) { //循环获取数据 var id = json[index].id; var name = json[index].name; //$("#list").html($("#list").html() + "<br>" + id + " - " + name + "<br/>"); //alert(id); str += "<li class='item'>"+id+"<br>"+name+"</li>"; $("#list").html($("#list").html() + str); //我想其实应该是这样的:当你点击某一项的时候,会进入一个URL,来进行更改数据库的操作。 //系统怎么识别出来你点击的是哪一项? //jQuery中如何判断当前点击的是第几个li,使用$(this).index()取得li的下标 }); $("#content #list .item").click(function () { alert($(this).index()); $(this).toggleClass("i1"); }); } }
    //function show2() show3() show4()的实现和show1()原理是一样的,这里就不再写了。
    </script> </html>

    上边所模拟的数据data1.json

       [
        {
          "id":"EWVEB1",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB2",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB3",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB4",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB5",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB6",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB7",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB8",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB9",
          "name":"车票从任何云顶长途快车车站至缆车站"
        },
        {
          "id":"EWVEB10",
          "name":"车票从任何云顶长途快车车站至缆车站"
        }
       ]
  • 相关阅读:
    spring-mybatis 事物配置 execution表达式含义
    微信内置浏览器缓存导致链接无法多次访问
    linux学习记录-------解决复制的虚拟机,无法同时上网
    mybatis-select-insert-update-delete
    tomcat 端口被占用
    EFCodeFirst安装失败(包括EntityFrameWork安装),这样解决。。。
    数组的一些操作
    《Java技术》第三次作业--面向对象——继承、抽象类、接口
    java第二次作业
    《Java技术》第一次作业
  • 原文地址:https://www.cnblogs.com/mengxiao/p/7275272.html
Copyright © 2011-2022 走看看