调用和动态更新jquery函数
我正在尝试用jquery替换旧的远程调用。我从另一个stackoverflow线程获得以下代码: 但我正在努力让它发挥作用。如果我正确理解UJS,如果我做以下事情:调用和动态更新jquery函数,jquery,ruby-on-rails-3,Jquery,Ruby On Rails 3,我正在尝试用jquery替换旧的远程调用。我从另一个stackoverflow线程获得以下代码: 但我正在努力让它发挥作用。如果我正确理解UJS,如果我做以下事情: 将脚本放在application.js中 在我的布局中包含application.js(javascript_include_标记:defaults会这样做) 在我的视图模板中有一个id='mydiv'的DOM元素 那么函数应该自动绑定到“mydiv”并在页面加载后执行,对吗?有没有我错过的一步?我不应该命名函数或在视图中直接调
- 将脚本放在application.js中
- 在我的布局中包含application.js(javascript_include_标记:defaults会这样做)
- 在我的视图模板中有一个id='mydiv'的DOM元素
第二,如何动态更新加载URL。例如,我有一个路径为“/controller/:id/action”的嵌套资源。。。如何在渲染时将:id值动态插入加载路径?在函数中添加以下内容
$('#mydiv').css("background", "red");
div的颜色变了吗?如果有,调试服务器端代码
如果您知道如何在浏览器中打开JavaScript控制台,请打开它并查看是否有任何错误。这样做的方法是在div标记中设置要加载的属性,然后从application.js文件中获取该属性 some.html
<div data-delay-load="<%= url_for() %>"></div>
很好的一点是,只要包含数据延迟加载属性,就可以在任何页面或同一页面上的多个元素上加载延迟加载。谢谢。没有回答问题,但帮我找出了问题所在。谢谢。在我发布之后,我意识到我不需要:id,所以我更改了我的路由声明,这样操作就针对集合而不是成员。这允许我使用一个简单的字符串作为加载url,例如load('action/controller')。但是,由于某些原因,结果http请求将字符串附加到完整的当前url而不是基本url,例如GET base/controller/action/controller/action。知道为什么吗?忽略我的问题,这是一个简单的语法错误,需要在路径前面加斜杠,例如load(“/controller/action”)
<div data-delay-load="<%= url_for() %>"></div>
$(function() {
$('div[data-delay-load]').each( function() {
var url = $(this).attr('data-delay-load'),
$element = $(this);
var _func = function() {
$element.load(url);
}
setTimeout(_func, 3000);
});
});