首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我使用"respond_do“重新呈现部分时,引导开关功能不会加载。

问当我使用"respond_do“重新呈现部分时,引导开关功能不会加载。
EN

Stack Overflow用户
提问于 2013-05-05 22:36:01
回答 1查看 2.1K关注 0票数 2

我使用bootstrap-switch,并且我已经用bootstrap-switch-rails实现了它。很棒的特性,但在使用ajax响应来呈现部分时,我遇到了它的持久性问题。

我有一个视图文件:

代码语言:javascript
复制
#### index.html.haml

#partial_id= render 'partial'

这将呈现部分(包含引导开关切换功能和可单击按钮):

代码语言:javascript
复制
#### _partial.html.haml

.switch{"data-off-label" => "OFF", "data-on-label" => "ON"}
  %input{:checked => "", :type => "checkbox"}

%button.click-here

单击click-here按钮时,将触发ajax get请求:

代码语言:javascript
复制
#### some_script.js.coffee

btn = $("#click-here")
btn.off "click"
btn.click (e) ->

  $.ajax
    type: "get"
    dataType: "script"
    url: "some_controller/some_action"

控制器获取请求:

代码语言:javascript
复制
#### some_controller.rb

def some_action
  respond_to do |format|
    format.js
  end
end

并回应为:

代码语言:javascript
复制
#### some_action.js.erb

var partial = $("#partial_id");
partial.children().remove();
partial.append('<%= j render("partial") %>');

当重新呈现部分时,来自bootstrap-switch的脚本/样式表不会加载(或类似的东西),因为显示的不是切换函数,而是一个简单的复选框。这怎么可能呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-25 13:42:46

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16385608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档