Javascript 为什么我的代码中没有捕获回调?

Javascript 为什么我的代码中没有捕获回调?,javascript,ruby,cocoon-gem,apache-cocoon,Javascript,Ruby,Cocoon Gem,Apache Cocoon,我有一个ruby make with cocoon的函数嵌套形式。问题是,我试图在插入之前和插入之后使用,但它什么也不做 我的表情: <div class="row" id="street_enter_itineraries"> <table> <div class="street_enter_itineraries" > <%= f.fields_for :street_enter

我有一个ruby make with cocoon的函数嵌套形式。问题是,我试图在插入之前和插入之后使用,但它什么也不做

我的表情:

<div class="row" id="street_enter_itineraries">
          <table>
            <div class="street_enter_itineraries" >
              <%= f.fields_for :street_enter_itineraries do |builder| %>
                <%= render 'street_enter_itinerary_fields', f:builder %>
              <% end %>
            </div>
          </table>
            <div class="row">
              <%= link_to_add_association  "Añadir calle de entrada",f, :street_enter_itineraries, class: 'btn btn-info', data: {association_insertion_node: '.street_enter_itineraries', association_insertion_method: :append}  %>
            </div>
          </div>
我看过这个帖子:因为它是我想做的。我也尝试过此选项,但console为空:

 $(document).on('cocoon:after-insert', '.content form', function(e) {
    console.log('Something');
});

提前感谢。

您的jquery选择器错误,您在开始时忘记了表示搜索id的符号。因此您编写了$“street\u enter\u itineries”,您应该编写

$('#street_enter_itineraries')
[编辑]使js turbolinks相对容易,或者确保它在turbolinks:load时触发,而不是在您的情况下使用document ready事件可能是最容易的

$(document).on('turbolinks:load', function(e) {
    $('#street_enter_itineraries') ...
})
或者使用正确的选择器在文档上注册cocoon处理程序:

$(document).on('cocoon:before-insert', '#street_enter_itineraties', function(e) {
   // do something here
}

也许它已经失去了斜杠,因为几次尝试,但不工作,虽然我把它当可能是一个涡轮链接的问题?你的js代码不是turbolink安全的,它只能在第一次加载时工作,然后你的页面可能还没有包含正确的元素。你知道如何使turbolink安全吗?我在ruby方面还很年轻,这是我第一次听说itI更新了我的答案如何使其符合turbolinks。你在使用turbolinks吗?如果你想要一个类,底部应该总是记录一些东西。内容包含表单,是这样吗?
$(document).on('cocoon:before-insert', '#street_enter_itineraties', function(e) {
   // do something here
}