当jQuery生成新字段时,新字段无法使用'输入'。
这是我的剧本:
咖啡
$('.teaser-form').keyup (e) ->
if e.keyCode == 13
$('.add-new-list').click()
form.haml
= f.simple_fields_for :products do |p|
= render 'product_fields', :f => p
.gear-item-add
= link_to_add_association 'add item', f, :gears, class: "btn btn-default add-new-list"
所以jQuery调用link_to_add_association
按钮创建下面显示的字段。 (第一个字段是初始字段,所以如果按下回车键,则会产生第二个字段和第三个字段...但如果我尝试继续第三个字段并按回车键,则不会发生任何事情)
_product_field.haml
.nested-fields.gear-patrol
.col-md-12
= f.text_field :list, class: 'teaser-form form-control', placeholder: 'testing'
答案 0 :(得分:5)
当您在寻找CoffeeScript和haml时,请在您的代码中尝试:
$(document).on 'keyup', '.teaser-form', (e) ->
if e.keyCode == 13
$('.add-new-list').click()
return
这就是@nnnnnn带来的有关this question的代码的处理方式
答案 1 :(得分:0)
将事件处理程序添加到新创建的元素
重新执行此代码。
$('.teaser-form').keyup (e) ->
if e.keyCode == 13
$('.add-new-list').click()
或者仅将处理程序添加到新创建的元素中。
答案 2 :(得分:0)
当您将处理程序绑定到类时,它会查找具有该类的所有现有对象并绑定逻辑 - 因此新创建的对象将不具有处理程序,无论它们是否具有班级。这是maazzaa's point。