我无法让selectize-rails
与cocoon
合作。 (当加入+1出勤选择时,它不活跃)。我看到了this的问题,但它让我无处可去。
我有什么:
- Attendance model
- Event model
- Event has_many :attendances
我的js:
$(document).ready(function(){
if ($('.selectize')){
$('.selectize').selectize({
sortField: 'text'
});
}
});
活动/ _form:
= simple_form_for @event do |f|
= f.button :submit, class: "btn btn-success add-button"
= f.input :starts_at, :minute_step => 15
#tasks
= f.simple_fields_for :attendances do |attendance|
= render 'attendance_fields', f: attendance
.links
%p
= link_to_add_association 'Add attendance', f, :attendances
_Attendance_fields:
.nested-fields
= f.select :guest_id, Guest.all.map{|c| [c, c.id]}, {},class: 'selectize'
= link_to_remove_association "Remove attendance", f
有什么想法吗?请帮忙
答案 0 :(得分:3)
因此,您的代码会在页面上选择类.selectize
的项目,然后在其上调用selectize
函数。但是,此调用仅在初始加载页面时运行。将新项目动态添加到页面时,您将不得不再次执行此操作。 Cocoon引发了你可以听的事件,当它们发生时,你会得到插入的html片段。
所以你可以这样做:
$('form').on('cocoon:after-insert', function(e, addedItem) {
$(addedItem).find('.selectize').selectize({
sortField: 'text'
})
});
这意味着:每次提出cocoon事件的形式,我们都会应用.selectize
代码。
可以在documentation中找到更多示例和信息。