2015-12-26 15 views
0

不知道使用jQuery是在結束這是通過Ajax呈現這種模式窗口的正確方法...關閉模式窗口通過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 

模態窗口生成動態內容,所以我不知道是什麼最好的方法來關閉它,如果人們關閉並打開不同的對象,它不會落後於應用程序。

+0

而不是使用'#Root'(ID),嘗試使它成爲'.Root'(class)。 –

+0

@ZulhilmiZainudin嗯不知道爲什麼添加關閉會有幫助嗎? – hellomello

+0

檢查加載了所有javascript時是否加載了'#close'標籤。如果它動態地出現在頁面上,你應該使用'$(document).on'click','#Close''作爲'$('body')'只會將事件監聽器添加到標籤中JavaScript被加載。 – Kkulikovskis

回答

-1

在回覆評論後,我想清楚我需要做什麼,我只需要使用.remove()而不是.hide()。這是有效的,不確定它是否是最終的正確方法,所以我會標記這一個,除非有更好的答案。

$ -> 
    $('body').on 'click', '#Close', -> 
    $("#Root").remove()