zoukankan      html  css  js  c++  java
  • 模态对话框-终极版

    实现了动态添加,删除。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .hide{
                display:none;
            }
            .model{
                position:fixed;
                top:50%;
                left:50%;
                500px;
                height:400px;
                margin-left:-250px;
                margin-top:-250px;
                background-color:#eeeeee;
                z-index:10;
            }
            .shadow{
                position:fixed;
                top:0;
                left:0;
                right:0;
                bottom:0;
                opacity:0.6;
                background-color:black;
                z-index:9;
            }
    
        </style>
    </head>
    <body>
        <a onclick="addElement();">添加</a>
        <table border="1px" id="tb">
            <tr>
                <td>1.1.1.11</td>
                <td>80</td>
                <td>
                    <a class="edit">编辑</a> | <a class="del">删除</a>
                </td>
            </tr>
                    <tr>
                <td>1.1.1.12</td>
                <td>80</td>
                <td>
                    <a class="edit">编辑</a> | <a class="del">删除</a>
                </td>
            </tr>
                    <tr>
                <td>1.1.1.13</td>
                <td>80</td>
                <td>
                    <a class="edit">编辑</a> | <a class="del">删除</a>
                </td>
            </tr>
        </table>
        <div  class="model hide">
            <div>
                <input name="hostname" type="text"/>
                <input name="port" type="text"/>
                <input type="text"/>
            </div>
            <div>
                <input type="button" value="取消" onclick="cancelModel();"/>
                <input type="button" value="确定" onclick="confirmModel();"/>
            </div>
        </div>
            <div class="shadow hide"></div>
    
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.del').click(function(){
                $(this).parent().parent().remove();
            })
    
            function confirmModel(){
                var tr=document.createElement('tr');
                var td1=document.createElement('td');
                    td1.innerHTML='1.1.1.333';
                var td2=document.createElement('td');
                    td2.innerHTML='8001';
                $(tr).append(td1);
                $(tr).append(td2);
                $('#tb').append(tr);
                $(".model,.shadow").addClass('hide');
    
    
                $('.model input[type="text"]').each(function(){
                    //var temp="<td>.."
                    var td=document.createElement('td');
                    td.innerHTMl='用户输入的值';
                })
            }
    
            function addElement(){
                //$('.model').removeClass('hide');
                //$('.shadow').removeClass('hide');
                $('.model,.shadow').removeClass('hide');
            }
            function cancelModel(){
                $('.model,.shadow').addClass('hide');
                $('.model input[type="text"]').val("");
            }
            $('.edit').click(function(){
                $('.model,.shadow').removeClass('hide');
                //this 当前点击的标签
                var tds=$(this).parent().prevAll(); //tds是个列表,里面是2个td,内容是port,host
                var port=$(tds[0]).text();
                var host=$(tds[1]).text();
                $('.model input[name="hostname"]').val(host);
                $('.model input[name="port"]').val(port);
                //循环获取tds中的内容,赋值给input标签里面的value。cancel.log(tds[0])=80;
    
    
            });
        </script>
    
    </body>
    </html>
    

     

    按照自己的逻辑写的版本,还有2个地方需要调试。

    1) 点击完编辑以后,会增加新的一行,而原数据行还是保留。

    2) 新增加的行,没有绑定edit del 事件,所以程序需要用delegate进行绑定。

    $('.c1').delegate('a','click',function(){}) #不同于其它,有委托的作用。  .c1 下面所有的a 标签都绑定click事件。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8"/>
        <style>
            .hide{
                display:none;
            }
            .shadow{
                position:fixed;
                top:0;
                left:0;
                right:0;
                bottom:0;
                background-color:black;
                opacity:0.6;
                z-index:9;
            }
            .model{
                position:fixed;
                top:50%;
                left:50%;
                500px;
                height:400px;
                margin-left:-200px;
                margin-top:-200px;
                background-color:#eeeeee;
                z-index:10;
    
            }
        </style>
    </head>
    <body>
        <div class="addElement">添加</div>
        <table id="tb" border="1px">
            <tr>
                <td>1.1.1.1</td>
                <td>80</td>
                <td>
                    <a class="edit">编辑</a>|<a class="del">删除</a>
                </td>
            </tr>
    
            <tr>
                <td>1.1.1.2</td>
                <td>80</td>
                <td>
                    <a class="edit">编辑</a>|<a class="del">删除</a>
                </td>
            </tr>
    
            <tr>
                <td>1.1.1.3</td>
                <td>80</td>
                <td>
                    <a class="edit">编辑</a>|<a class="del">删除</a>
                </td>
            </tr>
        </table>
    
        <div class="shadow hide"></div>
        <div class="model hide">
            <input name="hostname" type="text">
            <input name="port" type="text">
            <input type="text">
            <input type="button" value="确定">
            <input type="button" value="取消">
        </div>
    
        <script src="jquery-1.12.4.js"></script>
        <script>
            $('.addElement').click(function(){
                $('.shadow,.model').removeClass('hide');
                $('.model input[type="text"]').val("");
            })
    
            $('.model input[value="取消"]').click(function(){
                $('.shadow,.model').addClass('hide');
            })
    
            $('.model input[value="确定"]').click(function(){
                var host=$('.model input[name="hostname"]').val();
                var port=$('.model input[name="port"]').val();
    
                var tr=document.createElement('tr');
                var td1=document.createElement('td');
                    td1.innerHTML=host;
                var td2=document.createElement('td');
                    td2.innerHTML=port;
                $(tr).append(td1);
                $(tr).append(td2);
                $('#tb').append(tr);
                $('.shadow,.model').addClass('hide');
            })
    
            $('.edit').click(function(){
                $('.shadow,.model').removeClass('hide');
                var tds=$(this).parent().prevAll();
                var port=$(tds[0]).text();
                var host=$(tds[1]).text();
                $('.model input[name="hostname"]').val(host);
                $('.model input[name="port"]').val(port);
    
            })
    
            $('.del').click(function(){
                $(this).parent().parent().remove();
            })
    
    
    
    
        </script>
    </body>
    
    </html>
    
  • 相关阅读:
    vscode git
    ionic2/cordova自定义插件集成aar包
    ui-router实现返回上一页功能
    《深入理解Spark:核心思想与源码分析》一书正式出版上市
    记一次Web服务的性能调优
    程序设计——冲突
    Oracle执行计划的查看
    程序设计——规则
    Tomcat源码分析——Session管理分析(下)
    Tomcat源码分析——Session管理分析(上)
  • 原文地址:https://www.cnblogs.com/momo8238/p/7468923.html
Copyright © 2011-2022 走看看