【发布时间】:2016-04-01 06:20:15
【问题描述】:
不确定使用 jquery 是否是关闭这个通过 ajax 呈现的模态窗口的正确方法...
$ ->
$('body').on 'click', '#Close', ->
$("#Root").hide()
当我尝试这个时,它只能工作一次。如果我单击另一个对象以打开不同的模式窗口,则隐藏不起作用。
#Root
#Bg
#Main
#Info
#MainControls
#Close{style: "cursor:pointer;"}
%a.CloseButton
%i X
模态窗口正在通过这个渲染:
$('body').append('<%= j render partial: "trips/quick_view" %>');
在我看来:
@trips.each do |trip|
= link_to trip.id, quick_view_trips_path(:js, id: trip.id), remote: true
模态窗口产生动态内容,所以我不确定关闭它的最佳方法是什么,并且如果人们关闭和打开不同的对象也不会滞后应用程序。
【问题讨论】:
-
不要使用
#Root(ID),而是尝试使用.Root(类)。 -
@ZulhilmiZainudin 嗯不知道为什么添加关闭会有所帮助?
-
在所有javascript加载完成后,检查是否加载了
#close标签。如果它动态显示在页面上,您应该使用$(document).on 'click', '#Close'而不是$('body')只会在加载javascript时将事件侦听器添加到标签中。 -
@Kkulikovskis 文档不起作用。问题是它不应该隐藏它,因为它使容器仍在 DOM 中,我需要关闭它。当我刷新页面时,
#Root开始不在 DOM 中。
标签: jquery ruby-on-rails ajax jquery-ui ruby-on-rails-4