Javascript 为什么我的代码中没有捕获回调?
我有一个ruby make with cocoon的函数嵌套形式。问题是,我试图在插入之前和插入之后使用,但它什么也不做 我的表情: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
<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
}