javascript - 具有功能的 Cocoon 数据关联插入节点

标签 javascript jquery html ruby-on-rails cocoon-gem

根据https://github.com/nathanvda/cocoon#link_to_add_association您应该能够将函数传递给 data-association-insertion-node

我试过这个:

<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'get_row()'} %>

还有这个:

<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'get_row'} %>

还有这个(变得绝望):

<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'function get_row(node){var row = "<tr></tr>";$("#table_body").append(row);return row;}'} %>

但它们都不起作用。

Javascript:

function get_row(node){
    var row = "<tr></tr>"
    $("#table_body").append(row);
    return row
}

我正在尝试将 tr 添加到 table,然后将嵌套的时隙形式附加到 tr

最佳答案

目前您无法执行此操作。当像这样设置 data-association-insertion-method 时,它只是 javascript 中的一个字符串,而不是对方法的引用。

作为documented在 README 中,您必须执行以下操作(假设您为链接指定了一个类 .add-timeslot):

$(document).on('turbolinks:load', function() {
  $(".add-timeslot a").
    data("association-insertion-method", 'append').
    data("association-insertion-node", function(link){
      return link.closest('.row').next('.row').find('.sub_tasks_form')
    });
});

(该示例几乎是从文档中逐字复制的,仅用于演示目的——您必须填写您的 get_row 函数)

关于javascript - 具有功能的 Cocoon 数据关联插入节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709119/

相关文章:

javascript - Jquery:获取html元素的属性值

javascript - 如何根据提供的最小和最大字符范围在 Javascript 中生成随机数

javascript - 如何使用react router v4进行动态组件渲染?

JavaScript regex.test Firefox 与其他浏览器,不同的行为

javascript - 如何在 Jquery 中访问模型属性(列表)

javascript - 将内容标签添加到模板内的输入字段

javascript - Bootstrap 的 jQuery 链接

javascript - 使用 Chosen 插件更改动态添加的选择事件

javascript - CNET 等社交分享按钮

javascript - jQuery .html 不适用于 td