Jquery 在rails中通过ajax关闭模式窗口
不确定使用jquery是否是关闭此通过ajax呈现的模式窗口的正确方法Jquery 在rails中通过ajax关闭模式窗口,jquery,ruby-on-rails,ajax,jquery-ui,ruby-on-rails-4,Jquery,Ruby On Rails,Ajax,Jquery Ui,Ruby On Rails 4,不确定使用jquery是否是关闭此通过ajax呈现的模式窗口的正确方法 $ -> $('body').on 'click', '#Close', -> $("#Root").hide() 当我尝试这个时,它只起作用一次。如果单击另一个对象以打开不同的模式窗口,则隐藏不起作用 #Root #Bg #Main #Info #MainControls #Close{style: "cursor:pointer;"} %a.C
$ ->
$('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" %>');
模态窗口会生成动态内容,因此我不确定关闭此窗口的最佳方式是什么,并且在人们关闭和打开不同对象时不会延迟应用程序。在对响应进行评论后,我明白了我需要做什么,我只需要使用
.remove()
而不是.hide()
。这是可行的,不确定这是否是最终正确的方法,所以除非有更好的答案,否则我将把这一条划掉
$ ->
$('body').on 'click', '#Close', ->
$("#Root").remove()
不要使用
#Root
(ID),而是尝试使用.Root
(class)。@ZulhilmiZainudin-hmmm不确定为什么添加close会有帮助?检查在加载所有javascript时是否加载了#close
标记。如果它动态出现在页面上,您应该使用$(文档)。在“单击”时,“关闭”
,而不是作为$(“正文”)
仅在加载javascript时将事件侦听器添加到标记中。@Kkulikovski的文档不起作用。问题是它不应该隐藏它,因为它将容器留在DOM中,我需要关闭它。刷新页面时,#Root
不在DOM中。
$ ->
$('body').on 'click', '#Close', ->
$("#Root").remove()