【问题标题】:Jquery Select2 plugin won't apply to the inputs rendered after a JS call to rails appJquery Select2 插件不适用于在 JS 调用 rails 应用程序后呈现的输入
【发布时间】:2013-07-17 10:22:41
【问题描述】:

我在 Rails 应用程序中使用select2 插件作为下拉菜单。但是,如果我使用对服务器 select2 的 JS 调用来呈现表单,则不会将其应用于输入。

这是一个描述我的意思的 js.erb 文件

$("#container").html("<%= j render partial: 'form' %>");
$(".select-list").select2()

我尝试使用以下方式设置上下文:

$(".select-list", document).select2()

但这也不起作用。服务器响应 JS 调用后,如何将 select2 应用于我的输入?

【问题讨论】:

  • 您是否通过将 select2.js 放在布局顶部进行检查?

标签: javascript jquery ruby-on-rails unobtrusive-javascript jquery-select2


【解决方案1】:

由于您要替换 #container 的内容,因此您需要使用 jQuery on 方法 (http://api.jquery.com/on/) 绑定 select2 或任何其他事件。

因此,执行以下操作应该可以解决您的问题:

在你的js.erb

$("#container").html("<%= j render partial: 'form' %>").trigger('show');

然后在您的assets/javascripts/somefile.js.erb 上,只要somefile.js.erb 包含在您的application.js 中,或者您甚至可以将以下内容放在application.js 的底部:

$('#container').on('show', function() {
    $('.select-list').select2();
});

【讨论】:

  • @innocent_rifle,太棒了!很高兴能帮上忙。
猜你喜欢
  • 2019-01-31
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 2018-01-29
相关资源
最近更新 更多