Rails 5 Bootstrap模式复制前一个窗口

Posted

技术标签:

【中文标题】Rails 5 Bootstrap模式复制前一个窗口【英文标题】:Rails 5 Bootstrap modal duplicating previous window 【发布时间】:2018-10-21 10:11:19 【问题描述】:

我有一个引导模式设置,其中我有一些 JQuery 相应地向每个模式动态添加内容。一切正常。

但是有一个小故障我想不通。因此,如果任何属性,在这种情况下,link 不存在并且我打开模式窗口(我将其称为窗口 1),它是空白的 - 完美。但是,如果我单击并打开一个具有 link 属性的模式窗口(窗口 2),然后返回单击没有链接的前一个窗口(窗口 1),它现在会显示一个链接 - 并且它显示的链接来自窗口 2。

我已经检查了控制台,我知道 link.present?false - 所以我觉得它与 JQuery 需要重置有关,或者在我离开 .hover 之后它没有t 绑定了。

有什么想法吗?

jQuery

$(".media").hover(function()           
        var thisLink = $(this).find(".media-link").html();
        $("#media-modal-link").html(thisLink);
);

HTML (index.html.erb)

<% @media.each_slice(2).with_index do |(p,q), i| %>
    <% if p.link.present? %>
        <p class="media-link"> <%= link_to "Read More", p.link, target: "_blank" %></p>
    <% end %> 

    <% if q.link.present? %>
    <p class="media-link"> <%= link_to "Read More", q.link, target: "_blank" %></p>
<% end %>

_modal.html.erb

<div id="media-modal-link">

</div>

【问题讨论】:

【参考方案1】:

在这里找到答案:https://***.com/a/26864048/5551783

$("#media_modal").on("hidden.bs.modal", function() 
                $("#media-modal-link").html("");
              );

【讨论】:

【参考方案2】:

您必须特别让悬停功能知道要调用哪个媒体链接。在这种情况下,您可以使用id 来区分媒体链接,而不是使用class='media-link',您可以使用id='media-link-1'id='media-link-2' 之类的东西。然后使用悬停功能中的条件来相应地显示媒体链接。

【讨论】:

你能解释一下条件部分提供一些代码吗?感谢您的帮助。

以上是关于Rails 5 Bootstrap模式复制前一个窗口的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap隐藏模式在使用ajax的Rails 6中不起作用

Rails 5 - 如何删除 twitter-bootstrap-rails gem 并手动安装

导航栏折叠在 Rails 5/Bootstrap 3 上不起作用

带有 Bootstrap 模态视图的 Rails 应用程序,包含表单、提交和消失模态视图,无需重新加载页面

bootstrap 4导航栏在rails 5应用程序中不起作用

没有路线匹配 [GET] "/users/sign_out" **Rails 5/Bootstrap 4**