我使用bootstrap-switch,并且我已经用bootstrap-switch-rails实现了它。很棒的特性,但在使用ajax响应来呈现部分时,我遇到了它的持久性问题。
我有一个视图文件:
#### index.html.haml
#partial_id= render 'partial'这将呈现部分(包含引导开关切换功能和可单击按钮):
#### _partial.html.haml
.switch{"data-off-label" => "OFF", "data-on-label" => "ON"}
%input{:checked => "", :type => "checkbox"}
%button.click-here单击click-here按钮时,将触发ajax get请求:
#### some_script.js.coffee
btn = $("#click-here")
btn.off "click"
btn.click (e) ->
$.ajax
type: "get"
dataType: "script"
url: "some_controller/some_action"控制器获取请求:
#### some_controller.rb
def some_action
respond_to do |format|
format.js
end
end并回应为:
#### some_action.js.erb
var partial = $("#partial_id");
partial.children().remove();
partial.append('<%= j render("partial") %>');当重新呈现部分时,来自bootstrap-switch的脚本/样式表不会加载(或类似的东西),因为显示的不是切换函数,而是一个简单的复选框。这怎么可能呢?
发布于 2013-05-25 13:42:46
从技术上讲,它不是您之前附加到的同一项,因为您已经在js.erb响应中替换了它。您只需让javascript拾取新项即可。在some_action.js.erb文件的末尾添加$('.switch')['bootstrapSwitch']();应该可以解决这个问题……
https://stackoverflow.com/questions/16385608
复制相似问题