【问题标题】:bootstrap-switch functionality does not load when I re-render a partial with "respond_do"当我使用“respond_do”重新渲染部分时,引导开关功能不会加载
【发布时间】:2013-04-29 10:23:29
【问题描述】:

我使用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

点击此处按钮时,触发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 的脚本/样式表不会被加载(或类似的东西),因为显示的不是切换功能,而是一个简单的复选框。这怎么可能?

【问题讨论】:

  • 与 ASP.Net 4.5 相同的问题,使用开关

标签: javascript ruby-on-rails ajax ruby-on-rails-3 twitter-bootstrap


【解决方案1】:

从技术上讲,它与您之前附加的项目不同,因为您已在 js.erb 响应中替换了它。您只需要让 javascript 获取新项目。将$('.switch')['bootstrapSwitch'](); 添加到some_action.js.erb 文件的末尾应该可以解决问题....

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 2021-01-14
    • 2021-02-15
    • 2022-11-29
    • 2020-01-28
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多