我有一個HAML表和記錄與通過這個實例變量@academic_classes每個環路部分的清單,我已經放置best_in_place選擇輸入到第二TD對象屬性,是class_category,這裏是我的部分haml中的代碼。導軌Best_in_place活化劑不工作呈現由遠程AJAX調用
_classes.html.erb
- @academic_classs.all.each do |academic_class|
%tr
%td= check_box_tag "class_ids[]", academic_class.id
%td
- unless academic_class.class_category.blank?
= best_in_place academic_class, :class_category_id, :as => :select, activator: '#edit-class-category-name_' + academic_class.id.to_s, :collection => ClassCategory.all.map{|m| [m.id, m.name]}, inner_class: "form-control"
= link_to 'javascript:void(0)', class: "pull-right", id: 'edit-class-category-name_' + academic_class.id.to_s do
.glyphicon.glyphicon-pencil
- else
%em No Category
%td= academic_class.name
%td= academic_class.section
%td= link_to "javascript: void(0)", "data-href" => "#{academic_class_path(academic_class)}", method: :delete, onClick: "confirmDelete(this)" do
.glyphicon.glyphicon-trash
,我使用引導選項卡切換Javascript組件,但在這裏我使用與遠程調用和渲染的部分,以一個div當我點擊該選項卡中的任何一個。
index.html.erb
<ul class="nav nav-tabs" role="tablist" id="academic_classes_tab">
<li role="presentation" class="active">
<%= link_to "Classes", "#classes_tab", :remote => true, 'data-toggle' => 'tab', 'data-target' => '#classes', id: "classes_tab" %>
</li>
<li role="presentation">
<%= link_to "Categories", "#categories_tab", :remote => true, 'data-toggle' => 'tab', 'data-target' => '#categories', class: "categories_tab" %>
</li>
</ul>
<div class="tab-content academic_classes">
<div role="tabpanel" class="tab-pane fade in active" id="classes">
<div class="classes">
<%= render "classes" %>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="categories">
<div class="categories">
</div>
</div>
</div>
現在,當我點擊它採用非侵入式JavaScript選項卡中的任何一個,並呈現偏.classes股利和.categories DIV如上圖
index.js.erb的
if($("#academic_classes_tab li:first-child").hasClass("active")) {
$(".classes").html("<%= j render(partial: 'classes') %>")
$(".categories").html('')
$(".add_classes").html('')
} else
if($("#academic_classes_tab li:nth-child(2)").hasClass("active")) {
$(".categories").html("<%= escape_javascript(render 'categories').html_safe %>")
$(".classes").html('')
$(".add_classes").html('')
}
時後的股利負載與阿賈克斯我best_in_place除非我刷新頁面,否則選擇激活器不起作用。
這裏有一件事我注意到,當我點擊的最佳位置屬性類的類別名稱的標籤然後單擊激活再次是與鏈接鉛筆字形圖標,你可以在上面看到,該best_in_place工作很好,但我必須在列表中的每個標籤上做這件事情,然後每個相應的激活器也在工作和更新。
你們可以告訴我我做錯了什麼,或者是否有什麼需要在這段代碼中完成?另外請告訴我這段代碼的其他選擇我想使用best_in_place選擇索引頁而不是顯示頁,我可以將它放在每個元素上。現在我已經將對象Id放到激活器中以使其唯一。
您是否試過用'''結尾JS語句,比如'onClick'?你使用turbolinks(默認在Rails 4中)? – onebree