zoukankan      html  css  js  c++  java
  • bootstrap学习笔记

    今天用bootstrap做一个弹出框,用于创建project,代码很简单:

     <input type="button" class="btn add" name="add_project" value="Add"/>
    
    
        <div id="add_proj" class="modal hide fade" role="dialog">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h3>Add a project:</h3>
            </div>
            <div class="modal-body">
                <p>Project name:
                    <input type="text" value="" name='projectName' />
                </p>
                <p>Game Title:
                    <input type="text" value="" name='gameTitle' />
                </p>
                <p>Description:
                    <input type="text" value="" name='description' />
                </p>
            </div>
            <div class="modal-footer">
                <a href="#" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</a>
                <a href="#" class="btn btn-primary" name='save'>Ok</a>
            </div>
        </div>

    然后在js里截获click事件, 在这个click里添加add project的代码:

      $("input[name='add_project']").click(function(){
            $("#add_proj").modal("show");
            $("a[name='save']").click(function(){
                var paras = {};
                paras.projectName = $(this).parents("#add_proj").find("input[name='projectName']").val();
                paras.gameTitle = $(this).parents("#add_proj").find("input[name='gameTitle']").val();
                paras.description = $(this).parents("#add_proj").find("input[name='description']").val();
                console.log(paras);
                addProj(paras);
    
    
                $("#add_proj").modal("hide");
            });
        });
    

      在测试的时候发现,当$("#add_proj").modal("hide");的时候,modal并没有清除,而是保存了上次填写的值。然后重新show打开modal,填写值,继续点save的buton进行提交,会导致重复多次请求的情况,就是save的click事件被触发了n次(n为modal之前被点击过的次数累加之和)——

    在网上搜了一下,bootstrap一般是通过下面这样的方式打开,data-toggle是一个很关键的属性,然后href来指定打开的modal的id:

     <a data-toggle="modal" href="#add_proj" class="btn btn-primary">Add Project</a>
    

    修改成这样的方式以后就ok了。

    思考了下整个过程,应该是通过  

    $("#add_proj").modal("show");打开modal,再通过
    $("#add_proj").modal("hide");关闭modal,其实是隐藏,并没有真的关闭。

    至于为何多次请求,好像还是不太懂,难道bootstrap对于save的click事件用到事件队列或者列表存了下来么?求解释////


    http://blog.csdn.net/friskit/article/details/7250688 这个博客讲的蛮多,回头研究一下。
  • 相关阅读:
    2020 企业远程研发总结 —— 回首抗疫一年
    CODING X C-Life:云端 DevOps 加速企业数智化
    CODING 联合 TKE,让应用发布更便捷
    CODING 再携手腾讯云 Serverless,让开发者跑步上云
    代码托管从业者 Git 指南
    推荐计划 | 推荐好友用 CODING,获高额返现奖励
    仰望天空,脚踏实地 —— CODING OKR 全新上线
    在.NET中体验GraphQL
    C#规则引擎RulesEngine
    武装你的WEBAPI-OData常见问题
  • 原文地址:https://www.cnblogs.com/xiami303/p/2784092.html
Copyright © 2011-2022 走看看