模态引导随着更改事件流星消失

2023-11-27

我使用带有 bootstrap 的模态,所以我有一个带有 3 个选项卡的模态。在此选项卡之一中,我有一个如下选择:

      <div class="modal-body">

        <ul class="nav nav-tabs" id="TabModal">
            <li><a href="#onglet1" data-toggle="tab">Libre</a></li>
            <li><a href="#onglet2" data-toggle="tab">Complexe</a></li>
            <li><a href="#onglet3" data-toggle="tab">Questionnaire</a></li>
        </ul>

        <div class="tab-content">
            <div class="tab-pane" id="onglet1">
                <span class="label label-primary">Choose your collections :</span><br /><br />
                {{>eachCollections}}

                {{#if collectionChoose 1}}
                    <label style="float:left;">Par : </label>
                    <select class="form-control" style="width:200px;float:left;" id="widgetFilterSelectPanelistes">
                        <option value="none">-- none --</option>
                        <option value="name">Name</option>
                        <option value="age">Age</option>
                        <option value="city">City</option>
                    </select>
                    {{>eachKeyPanelistes}}
                    {{#if panelistChoose "name"}}
                        <select class="form-control" style="width:200px;">
                            {{#each panelistes}}
                                <option value="{{name}}">{{nom}}</option>
                            {{/each}}
                        </select>
                    {{/if}}
                {{else}}
                    {{#if collectionChoose 2}}
                        <p>participants</p>
                    {{/if}}
                {{/if}}

在模式中,我使用一个选择,当我更改选择值时,我会显示另一个选择等...

对于这个模板,我有一个像这样的 JS 文件:

Template.eachCollections.helpers({
collections : function () {
    return Collec.find();
}
});

Template.eachCollections.events({
'change #eachCollectionsSelect' : function () {
    var selected = document.getElementById('eachCollectionsSelect').value;
    Session.set('selectedCollections', selected);   
}
});

Template.widgetFilter.collectionChoose = function (param) {
return parseInt(Session.get('selectedCollections')) === param;
}

但是当我在选择更改上触发事件时,模式消失......

你有解决方案吗 ?


我认为这种情况正在幕后发生:

  • 您可以使用 javascript jQuery 插件调用打开(显示)模式,这基本上会修改 DOM(添加 css 类和内容以使模式可见)。
  • 然后模态中发生更改事件,这会导致 Meteor 按照模板中定义的方式重新渲染模态,从而清除“显示的”CSS 类。
  • 这会导致模态消失,因为它在隐藏状态下重新渲染。

那么可行的解决方案有哪些呢?

首先,我会让您知道 Meteor 的这个特定部分目前正在由核心开发人员(Meteor UI 项目)重写,在不久的将来(1-3 个月)我们将轻松集成 jQuery 插件,因为 Meteor DOM重新渲染不会再擦除整个 DOM,新引擎足够智能,可以保持对 DOM 属性的修改不变!

所以基本上你的代码可能会在不久的将来毫无痛苦地工作,但并不是每个人都能有足够的耐心等待,所以这里是 Meteor 开发人员提出的解决方案(他们在各方示例中实现了它)。

您将需要另一个表示模式状态的会话变量:显示/隐藏。 如果变量为真,则在显示的状态下调用模态模板,如果不是,则不执行任何操作。 这意味着您必须放弃模式转换(淡入/淡出),但它将允许您的模式模板正常重新渲染。

这是模式代码:(使用 Bootstrap 3!)

模态模板:

<template name="myModal">
    {{#if showModal}}
        <!-- this is the backdrop fully shown from the beginning -->
        <div class="modal-backdrop fade in"></div>
        <!-- css ".show" class == modal fully shown -->
        <div class="modal show">
            <div class="modal-dialog">
                <div class="modal-content">
                    <form class="form-horizontal">
                        <div class="modal-header">
                            <button type="button" class="close" aria-hidden="true">&times;</button>
                            <h4 class="modal-title">Modal Title</h4>
                        </div>
                        <div class="modal-body">
                            Modal Body
                        </div>
                        <div class="modal-footer">
                             <button type="button" class="cancel btn btn-default">Cancel</button>
                             <button type="submit" class="btn btn-primary">Submit</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    {{/id}}
</template>

模态 JavaScript :

Template.myModal.created=function(){
    Session.set("show-my-modal",false);
};

Template.myModal.helpers({
    showModal:function(){
        return Session.get("show-my-modal");
    }
});

Template.myModal.events({
    "click .close, click .cancel":function(){
        Session.set("show-my-modal",false);
    },
    "submit form":function(event){
        event.preventDefault();
        //
        Session.set("show-my-modal",false);
    }
});

父模板:

<template name="parent">
    {{> myModal}}
    <button class="show-my-modal-button" type="button">
        Show Modal
    </button>
</template>

父 JavaScript :

Template.parent.events({
    "click .show-my-modal-button":function(){
        Session.set("show-my-modal",true);
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模态引导随着更改事件流星消失 的相关文章

  • 扩展引导程序预输入的宽度以匹配输入字段

    我知道这个问题之前至少被问过三次 但我看到的答案并不是我想要的 我希望增加 twitter bootstrap 通过其 typeahead 功能生成的自动完成字段的宽度 我一直在读到它延伸到覆盖该字段中的所有文本 也就是说 文本越长 自动完
  • Twitter Bootstrap - 多图像(缩略图)轮播 - 一次移动一个缩略图

    我正在尝试 Twitter bootstrap 3 我对 HTML CSS 和 Javascript 还很陌生 我有一个我创建的轮播 它的代码如下所示 div class container div class carousel slide
  • 如何使弹出窗口出现在我的鼠标进入悬停目标的位置?

    这是一个示例代码 用于显示我的按钮下方的弹出窗口 fn popover defaults extend fn tooltip defaults placement bottom content 现在我希望弹出窗口出现在光标移动的位置 不仅是
  • Twitter Bootstrap 轮播在加载时自动播放

    使用twitter bootstrap框架 如何调用轮播来 自动滑动 这意味着当页面加载时 轮播会自动滚动 我尝试过 javascript onLoad click 函数 a 下一个链接的 但这不起作用 你应该这样做Twitter Boot
  • 每行中非空列的计数

    我有一个包含 4 列的表 在第 5 列中我想存储前 4 列中有多少个非空列的计数 例如 其中 X 是任意值 Column1 Column2 Column3 Column4 Count X X NULL X 3 NULL NULL X X 2
  • Twitter Bootstrap Popover/Tooltip Bug 与移动设备有关吗?

    我正在使用 Twitter Bootstrap 在 iPad 和 iPhone 上测试时遇到了无法修复的问题 在移动设备 至少是这些设备 上 您需要单击以接合提示或弹出框 如预期 问题是一旦关闭就永远无法关闭 我添加了一个侦听器 以便在您再
  • 如何在 Angular 项目中使用 Bootstrap?

    我开始我的第一次Angular应用程序和我的基本设置已完成 我怎样才能添加引导程序我的申请 如果您可以提供一个示例 那么这将是一个很大的帮助 如果您使用Angular CLI要生成新项目 还有另一种方法可以使 bootstrap 可访问角度
  • 如何从 bootstrap-markdown.js 调用 .getContent 和 .parseContent

    我是使用 Bootstrap 插件的新手 刚刚通过代码学院 http www codecademy com en skills make an interactive website 我真的很想用这个很棒的引导 Markdown 插件 ht
  • Bootstrap 选择的自定义样式

    我发现选择 Twitter Bootstrap 的下拉菜单非常丑陋 如何仅针对选择小部件停 用 Bootstrap 或者是否可以自定义选择下拉列表的外观 一探究竟 https developer snapappointments com b
  • AngularJS - 关闭模态窗口

    我的内容包括 bootstrap css getbootstrap com 2 3 2 angular ui bootstrap tpls 0 10 0 min js from angular ui github io bootstrap
  • 纤维/未来实际上有什么作用?

    下面这行代码的作用是什么 Npm require fibers future 我在网上查找示例 发现了一些这样的示例 Future Npm require fibers future var accessToken new Future 什
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • Bootstrap 3 RC2 自定义导航栏固定顶部走两行

    我正在使用 Bootstrap 3 RC2 我试图将导航栏固定在顶部 但不是全宽 我已经复制了 CSS 中的 navbar fixed top 声明 并创建了我的 在 IE 10 上 这效果很好 但在 Chrome 28 上 该栏分为两行
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • 切换到移动屏幕尺寸时自动关闭 Bootstrap 手风琴面板

    使用 Bootstrap 2 3 2 我有一个带有单个面板的手风琴 该面板在加载页面时打开 div class accordion div class accordion heading a class accordion toggle h
  • 流星内存不足

    我正在使用流星来制作报废引擎 我必须执行一个 HTTP GET 请求 这会向我发送一个 xml 但这个 xml 大于 400 ko 我得到一个异常 内存不足 result Meteor http get http SomeUrl com 致
  • Javascript 根据选择选项更改

    内容

    Javascript 不是最好的 所以我想问一下我哪里出了问题 正如标题所示 我有一个带有 4 个不同选项的选择框 当选择一个选项时我想更改 p 带有priceesc id 的标签 这是我到目前为止所拥有的 function priceTe
  • Bootstrap 4 具有 d-flex 类的列表项不响应 .hide()?

    当我添加课程时d flex我的引导程序 4 ul 列表项不响应 hide 不再 尽管style display none 被添加到 DOM 中 The d flex用于Bootstrap 4 列表徽章 https getbootstrap
  • Twitter Bootstrap 中的五个相等的列

    我想在我正在构建的页面上有 5 个相等的列 但我似乎无法理解这里如何使用 5 列网格 http web archive org web 20120416024539 http domain7 com mobile tools bootstr
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque

随机推荐