我使用jquery-turbolinks gem在Rails 4上。我有一个链接,当点击时,将使用jQuery向DOM添加一个输入字段:
$(".add_color").html("<input id='add_color_text_field' type='text' name='color' placeholder='Provide a color name'>");
但是,我的application.js中的jQuery没有为这个新生成的输入触发:
$(function() {
$('#add_color_text_field').keydown(function(e) {
alert("here");
});
...
当我将选择器更改为指向初始页面加载时已存在的输入字段时,这是有效的,所以我确定它有效。我需要更改为我的jQuery以使我新生成的DOM元素与turbolinks一起使用?
答案 0 :(得分:0)
您可能想要使用jquery-turbolinks
gem。它很容易安装:
的Gemfile:
gem 'jquery-turbolinks'
运行bundle install
并编辑Javascript清单:
//= require jquery
//= require jquery.turbolinks
//
// ... your other scripts here ...
并且应该解决你的问题。
请阅读github页面末尾与$(document)
绑定的说明(不要绑定在$(function () {...});
内,因为这些事件将被执行多次)。