如何确保Rails资产管道中的JQuery脚本在控制器特定的JS之后被调用
How do I make sure JQuery scripts in Rails asset pipeline are called after controller-specific JS?
例如:
我有一个通用的表单错误处理脚本,运行如下:
function default_form_method(){
$("form[data-remote='true']").bind("ajax:error", function(evt, xhr, status, error){
//show the errors, etc.
})
.bind('ajax:success', function(evt, data, status, xhr){
// clear the form, etc.
});
}
现在,当我通过index.js.erb:等分部远程加载表单时
$(function(){
$(".listing").html("<%= escape_javascript(render 'matches/a_cool_form') %>");
});
新加载的表单没有来自default_form_method的绑定。在过去,我通过在js.erb中再次调用该方法解决了这个问题,如下所示:
$(function(){
$(".listing").html("<%= escape_javascript(render 'matches/a_cool_form') %>");
default_form_method();
});
但这似乎是多余的,我想知道(?)这是否会降低性能。
有什么解决方案可以使资产管道方法始终绑定,即使在客户端加载表单时也是如此?我认为这与最后加载函数有关。
这是因为绑定只绑定到现有元素,而不是动态加载的元素。你试过on
(代替live
)吗?
function default_form_method(){
$("form[data-remote='true']").on("ajax:error", function(evt, xhr, status, error){
//show the errors, etc.
})
.on('ajax:success', function(evt, data, status, xhr){
// clear the form, etc.
});
}
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- ASP.Net MVC 脚本无法使用控制器的默认操作 URL.使用控制器/操作 URL 也是如此
- 将消息从控制器传递到视图中的 AJAX 脚本
- 将按钮值从脚本发送到控制器
- 如何确保Rails资产管道中的JQuery脚本在控制器特定的JS之后被调用
- 如何将变量从Angular控制器传递到html<脚本></脚本>
- 访问脚本中的角度控制器
- 如何将值从可视化力量组件中的脚本传递到其控制器
- AngularJS UI 路由器:包含控制器脚本的位置
- 通过Web脚本的javascript控制器从Alfresco的alfresco-global.properties文件中
- Angular 脚本中的控制器错误 - [$injector:modulerr]
- 在 AngularJS 中将脚本包含在控制器、工厂和服务中
- Java 脚本到 MVC:通过 Actionlink 传递的控制器变量
- 摩卡如何公开节点控制器函数来测试脚本
- 性能方面:拥有许多小型 ajax php 控制器脚本还是一个大型脚本更好
- 从 CodeIgniter 控制器执行 Java 脚本代码
- 想要关闭弹出窗口并在控制器上执行 PHP 脚本后重定向到相应的页面,没有任何事件
- 如何将html脚本变量传递给控制器
- 脚本在主控制器中激发两次
- Angular+Jade |从控制器到脚本标记的数组