2014-01-24 61 views
0

我以加載部分與AJAX使用escape_javascript在js.erb文件中使用的javascript:Rails的escape_javascript打破了局部

$("#datas-user").html("<%= escape_javascript(render :partial => '/pro/users/show_partial', :locals => { :id => @user.id }) %>"); 

我的問題是,在我的部分使用的JavaScript似乎是破碎?

我認爲,我有一個按鈕ID =「關係接觸按鈕」使用jQuery隱藏函數來顯示在顯示裝一個div:無

我的部分:

<div class="row"> 
<div class="col-xs-7"> 
    <div class="user_name"><%= @user.firstname %> <%= @user.lastname.chr %>.</div> 
</div> 
<div class="col-xs-5"> 
    <div id="relation-contact-button" class="btn btn-blue">Contact</div> 
</div> 
</div> 

<div id="relation-contact" class="rows"> 
<div class="col-xs-12 col-lg-12"> 
<%= form_for :message, url: pro_messages_path do |f| %> 
<%= f.label :message, :class => "search-title" %> 
<div class="form-group"> 
<%= f.text_area :message, :rows => 2, :class => "form-control", :placeholder => "Expliquez ce que vous pouvez apporter à cette personne" %> 
</div> 
<%= f.hidden_field :user_id, :value => @user.id %> 
<%= f.submit "Envoyer", :class => "btn btn-blue" %> 
<% end %> 
</div> 
</div> 

我的CSS :

#relation-contact { 
display: none; 

}

我的JS:

$("#relation-contact-button").click(function(){ 
    $('#relation-contact').show(); 
}); 

當我使用相同的代碼沒有部分它的作品,沒有任何反應。

有沒有辦法呈現我的部分並保持我的js工作?

非常感謝。

˚F

+0

你能舉起部分代碼嗎? :) –

+0

@ManojMonga我添加了一些內容,thx! – Fabien

回答

4

這是發生了什麼:

您的網站加載

後,你的JS踢和結合的Click事件處理程序#關係接觸按鈕。然後,你做什麼,並調用你的Ajax處理

$("#datas-user").html("<%= escape_javascript(render :partial => '/pro/users/show_partial', :locals => { :id => @user.id }) %>"); 

一切#DATAS用戶中被刪除,你的部分替代,沒有事件偵聽器綁定到任何東西,因爲它的處理器必定會消失的元素。你必須要麼處理程序在你的Ajax成功處理程序重新綁定到新渲染#關係接觸按鈕,或者使用:的

$("#datas-user").on("click", "#relation-contact-button", function(){ 
$('#relation-contact').show(); 
}); 

代替

$("#relation-contact-button").click(function(){ 
$('#relation-contact').show(); 

See the .on() doc以獲取更多信息。