gpt4 book ai didi

javascript - Rails 4,Turbolink 在渲染部分后执行 javascript

转载 作者:行者123 更新时间:2023-11-29 14:42:26 31 4
gpt4 key购买 nike

我有一个配置了一些 javascript 的表单。 javascript 在 Turbolink 处理的加载事件上加载:

//app/assets/javascripts/init.js
var ready = function () {
App.init(); //I configure some components of _form.html.erb partial
};
$(document).ready(ready);
$(document).on('page:load', ready);

如果我呈现部分 App.init() 代码不会执行,我的应用程序配置不正确。

//new.js.erb
$("#my-modal").html("<%= j( render 'form') %>");
$("#my-modal").modal("show"); //The partial is inside a modal

我可以在部分渲染后执行代码吗?像这样:

$(document).on('partial:render', ready); //Concept

需要在部分渲染后执行 js 代码,因为我需要配置一些 Jquery 插件来自定义模态表单。

模态是经典的 Twitter Bootstrap 模态:

//_form.html.erb
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<div class="row">
<div class="col-sm-offset-3 col-sm-9">
<h3 class="modal-title" id="myModalLabel">new</h3>
</div>
</div>
</div>

<%= simple_form_for(...) do |f| %>
<div class="modal-body">
<ul class="errors"></ul>
<%= f.error_notification %>

<%= render "companies/fields", f: f %>
...
...
</div>
<% end %>
</div>
</div>

最佳答案

尝试:

$(document).on('page:change', function () {
// Actions to do
});

在您的情况下,只需将 js 调用中的“page:load”行替换为:

$(document).on('page:change', ready);

关于javascript - Rails 4,Turbolink 在渲染部分后执行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946103/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com