问题标签 [ujs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 如何从 UJS 渲染部分内容?
我可以通过将函数绑定到超链接来呈现部分内容吗?
我有一个超链接:
查看所有图片我在 application.js 中有这个:
我猜 ruby erb 的东西永远不会像那样执行。在 Javascript 的上下文中,“渲染”没有任何意义。但我不想为了显示另一个页面而对服务器进行完整调用。有没有办法只使用 Javascript 来显示部分内容?除了显示页面和调用可见的开/关吗?
javascript - Rails 3 UJS - 悬停,而不是点击
对于我的表演动作,我渲染 show.js.erb。当我单击一个带有:remote => true
选项的链接设置时会发生这种情况。如何设置它以便在悬停时触发?
javascript - Rail 3 UJS 复杂表单多个字段_for
我有许多任务的里程碑。在我的项目显示页面上,我希望能够创建一个里程碑,无论用户决定添加多少任务到里程碑。如何使用添加更多任务
?
javascript - 动态项目插入弄乱了斑马条纹
我有一个简单的产品列表,其中使用该cycle
方法实现了斑马条纹。
这是产品部分:
但是,当我动态插入另一个产品时,循环方法在逻辑上选择第一个类(在本例中为“奇数”类),从而中断条带直到下一次重新加载。尽管动态重新加载整个产品会起作用;这种方法看起来有点脏,可能会弄乱分页。由于我对 JavaScript 和 Prototype 还比较陌生,我无法自己提出这个问题,所以我不得不问:有没有办法获得以前产品的类(“奇数”或“偶数”)并相应地为新插入的产品添加类?
我当前的 UJS 用于插入部分:
任何帮助将非常感激。
提前致谢。
ruby-on-rails-3 - rails 3 正在将“POST /categories”路由到 CategoriesController#index 操作
我有一个用于创建新类别的 ajax 表单。
在控制器中:
当我提交表单时,我在日志中看到了这个...
我的路线文件有:
“rake routes”的部分输出:
而且,我在我的 html HEAD 中包含了这个新的帮助程序,它生成了 rails 3 unobtrusive javascript 支持所需的一些标签:
有任何想法吗?
jquery - 标准删除链接不适用于 Rails3 + JQuery UJS
我正在使用 JQuery 1.4.4 和 jQuery UJS rails.js ( https://github.com/rails/jquery-ujs )制作 Ruby On Rails 3.0.3 应用程序
我有脚手架生成的模型/视图/控制器 - 文档,我在 app/views/documents/index.html.haml 文件中删除了链接:
link_to "delete", document, :confirm => "Are you sure?", :method => :delete
这会生成这个 HTML:
<a href="/documents/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
这看起来很不错。
当我单击此“销毁”链接时,我会看到浏览器确认(),当我单击取消时,我希望什么都不会发生。
但
删除功能发生并且文档被删除。
有没有人有同样的问题或者我做错了什么?
目前我已经挖掘了这么远:
我查看了jquery-ujs rails.js 并且有两个.live()事件附加到同一个锚点:
1) $('a[data-confirm],input[data-confirm]').live('click', function () {...}
2) $('a[data-method]:not([data-remote])').live('click', function (e){...}
首先 live() 执行return false; 据我了解,这应该会阻止所有执行链,但事实并非如此。第二个live()仍然执行,第二个live()是生成表单并提交销毁操作的地方。
ruby-on-rails-3 - Rails 3 自定义 JavaScript 事件在哪里定义?
当我查看 Rails 3 jquery-ujs 代码时,我注意到它绑定到自定义 JavaScript 事件(submit.rails、click.rails 等)。有谁知道这些自定义“.rails”事件在哪里定义?我只是想更好地理解 Rails 3 中的 UJS 东西是如何工作的,这样我就可以更有效地使用它......
ruby-on-rails - Rails3 ujs javascript/html 显示未执行
我正在尝试用一个相当简单的应用程序编写 rails3/ujs。
我想要的是要执行的javascript。我得到的是在新操作上执行的 js 或 html 代码,但在编辑操作的页面上显示。
编辑由以下触发
变成
一个新的被触发
变成
控制器同时处理新操作和编辑操作,因此:
如果我触发“新”操作,则执行 javascript,并且视图显示为空字段,可以填充。
如果我触发“编辑”操作,则 javascript 和 html 将显示在屏幕上。
有问题的js(edit.js.erb):
显示为
$("div#editDialog").dialog('open').html('<div class="content edit_page ui-widget"><form accept-charset="UTF-8" ... etc
我也可以 escape_javascript 然后显示的渲染语句
$("div#editDialog").dialog('open').html('<div class=\"content edit_page ui-widget\">\n...etc
所以仍然没有执行javascript。比较这两个操作的日志会显示所有相同的视图正在呈现。
我在这里错过了什么?(我希望通过把它全部写出来,解决方案会为我弹出,但到目前为止还没有。)
jquery - 无法在 Rails 3.0.3 中远程提交 FORM?
我正在使用带有 jQuery ujs 的 Rails 3.0.3。
我想远程发送表格。包含表单的视图模板mains/index.html.erb如下所示:
控制器mains_controller.rb如下所示(删除了不必要的东西):
视图模板mains/search.js.erb有以下内容:
我正在使用 search.js.erb 而不是 search.js.rjs,因为在使用 Rails 进行敏捷 Web 开发(4h 版)中的“26.4 少写多用 JQuery”一章中的说明。由于https://github.com/rails/jquery-ujs/issues/closed/#issue/52 ,我还添加了:format => :js。
当我调用http://0.0.0.0:3000/mains/index并提交表单时,实际上并没有远程提交,而是浏览器加载了http://0.0.0.0:3000/mains/search.js?remote=true反而。浏览器输出$('#search').html("<h1>Headline</h1>");
,而不是通过将 div#search 替换为<h1>Headline</h1>
给定来执行 JavaScript。
我试图找到一个解决方案,但到目前为止还没有成功......有人可以帮忙吗?
ruby-on-rails-3 - jquery-ujs ajax 事件未处理
我正在尝试使用 rails 3 实现 ajaxy 注册。我正在使用 jquery-ujs 和远程表单。我通过请求访问注册表单$.get
,它显示正确。此注册表单是远程的:
在我的 application.js 中,如果获取表单的 ajax 请求成功,我正在尝试为来自不显眼的 javascript 的 ajax 事件绑定处理程序:
Chrome 的开发工具显示事件“ ajax:beforeSend
”已绑定,但从未处理(当我发送表单时,javascript 控制台中没有任何内容,尽管在 rails 日志中我看到请求已正确处理并且响应已发送)。我可以将其他事件绑定到同一个选择器 ( form[data-remote]
),例如click
,并且它们被正确处理。
.live
也不会处理绑定的 Ajax 事件。但是,如果表单作为布局的一部分呈现(即,它位于http://localhost:3000/signup/之类的独立页面上),ajax:beforeSend
则正确处理绑定的“”。
我的控制器(只是为了一个案例,它可能写得不好,但我很确定它可以工作):
我究竟做错了什么?是否有更好的方法来实现这种“双ajaxed”表单?