Rails 4 / Turbolinks / jQuery:在新插入的元素上没有触发keydown事件?

时间:2014-05-16 16:28:48

标签: jquery turbolinks

我使用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一起使用?

1 个答案:

答案 0 :(得分:0)

您可能想要使用jquery-turbolinks gem。它很容易安装:

的Gemfile:

gem 'jquery-turbolinks'

运行bundle install并编辑Javascript清单:

//= require jquery
//= require jquery.turbolinks
//
// ... your other scripts here ...

并且应该解决你的问题。

请阅读github页面末尾与$(document)绑定的说明(不要绑定在$(function () {...});内,因为这些事件将被执行多次)。