- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Rails 版本:3.2.1
Ruby 版本:1.9.3p125
浏览器:Chrome 18.0.1025.162
开发操作系统:Mac OS/X Lion
服务器操作系统:CentOS 5
我正在尝试在 link_to 调用中使用 :remote ,以便我可以使用 AJAX 请求 HTML 内容,并使用返回的内容填充页面的一部分。
Rails 似乎没有正确连接链路。浏览器只是将该链接视为常规链接标记,并且似乎没有处理任何 Rails UJS 单击事件处理程序。
我有一个与正在运行的数据确认相关的链接,因此这表明 UJS 至少正在执行一些必要的连接。
我将其他点击事件监听器附加到同一链接,以隐藏/显示页面的一部分,该部分将显示 AJAX 调用返回的 HTML。
如果这是在其他地方发布的,我深表歉意,但我已经搜索了几天,但没有找到解决此特定问题的解决方案。我看过一些相关的文章,但它们都假设正在进行 AJAX 调用,并且存在一些 Rails 渲染流或路由问题,而在我的情况下,似乎根本没有任何接线。
这是一些代码:
我在 View 中的链接:
<%= link_to image_tag("icons/24x24/attachment.png"), task_notes_path(task), :class => "section-link task-notes-link", :title => "View recent notes", :remote => true, 'data-section' => "task-notes" %>
RoR生成的输出:
<a href="/tasks/7/notes" class="section-link task-notes-link" data-remote="true" data-section="task-notes" title="View recent notes"><img alt="Attachment" src="/assets/icons/24x24/attachment.png"></a>
这是/task/:task_id/notes Controller 代码:
def index
store_return_to
@project = nil
@tasks = nil
if (params.has_key?(:project_id))
@project = Project::find(params[:project_id])
sort = [
{ :field => 'status', :direction => 'asc'},
{ :field => 'priority', :direction => 'asc' }
]
filter = { :status => Task::STATUS_ACTIVE.to_s }
@tasks = Task::filter_sort(:project => @project, :sort => sort, :filter => filter, :per_page => 0)
else
@task_sort = params.has_key?(:task_sort) ? params[:task_sort] : { :field => 'priority', :direction => 'asc'}
@task_filter = params.has_key?(:task_filter) ? params[:task_filter] : { :status => Task::STATUS_ACTIVE.to_s }
@task_search = params.has_key?(:task_search) ? params[:task_search] : ""
@tasks = Task::filter_sort(:search => params[:task_search], :sort => @task_sort, :filter => @task_filter, :page => params[:tasks_page], :per_page => 15)
end
respond_to do |format|
format.html # index.html.erb
format.js
format.json { render json: @tasks }
end
end
最后,我在index.js.erb 文件中的代码:
<% if (!@project.nil?) %>
$('#project-<%=@project.id%>-tasks').html('<%= escape_javascript(render(@tasks)) %>');
<% else %>
$('#project-tasks').html('<%= escape_javascript(render(@tasks)) %>');
<% end %>
最佳答案
好吧,我明白了。
检查此 HTML 中的相关 :remote 链接:
<div class="list-item-row">
<div class="list-item-expander action-icon">
<a href="#" title="Show/hide content pane">
<%= image_tag "icons/24x24/plus.png", :class => "expander-image closed" %>
<%= image_tag "icons/24x24/minus.png", :class => "expander-image opened" %>
</a>
</div><div class="action-icon">
<a href="#" data-section="task-description" class="section-link" title="Show details"><%= image_tag "icons/24x24/page.png" %></a>
</div><div class="action-icon">
<%= link_to image_tag("icons/24x24/attachment.png"), task_notes_path(task), :class => "section-link task-notes-link", :title => "View recent notes", :remote => true, 'data-section' => "task-notes" %>
</div><div class="action-icon">
<%=task_image_tag(task, 24)%>
</div><div class="action-icon">
<div class="task-priority task-priority-<%=task.priority_str.downcase%>" title="<%=task.priority_str%> Priority"></div>
</div><div class="action-icon">
<% unless (task.assigned_developer.nil?) %><%= link_to image_tag(task.assigned_developer.avatar.icon.url), developer_path(task.assigned_developer), :title => "Assigned to: " + task.assigned_developer.full_name %><%end%>
</div><div style="width:280px;">
<%=link_to truncate(task.name, :length => 40, :omission => "..."), task_path(task), :title => task.name, :class => "item-show-link" %>
</div><div style="width:300px;font-size:10px;color:#777;">
<%=truncate(task.description, :length => 50, :omission => "...")%>
</div><div style="width:90px;float:right;text-align:center;">
<%=task.status_str%>
</div></div>
:remote 链接位于 ID 为“list-item-expander”的 DIV 中。该行有一个 onclick 事件,该事件将展开其下方当前项目的详细信息。下面是管理交互的 JS 代码:
elem.find(".list-item .list-item-row").click(function(evt) {
evt.stopPropagation();
$.tf.listItem.showHideItem($(this));
});
显然 evt.stopPropation() 不允许 :remote 链接的点击事件在事件链中冒泡到足够高的位置以供 UJS 处理。我通过过滤掉与 :remote 链接相关的 srcElements 解决了这个问题。代码如下:
elem.find(".list-item .list-item-row").click(function(evt) {
if ($(evt.srcElement).not('a').not('img').size() > 0) {
evt.stopPropagation();
$.tf.listItem.showHideItem($(this));
}
});
通过过滤 srcElements,允许 Img/A 点击冒泡。
关于jquery - Rails UJS (jQuery) 未连接数据远程链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182495/
我正在学习一个简单的教程,出于某种原因,我的 2 个 View 突变(addCard 和 addList)工作正常......但是,我的第三个突变(editCard)似乎在 Vue 中不起作用。当我单
我正在使用 Twitter Bootstrap 的按钮加载状态和 Rails Unobtrusive JavaScript http://twitter.github.com/bootstrap/ja
所以我正在尝试将谷歌地图集成到我的 Rails 应用程序中(请记住,这是我第一次这样做,而且我是 Rails 初学者,而且我不太了解 Ruby 代码)。 map 代码 // When t
我正在使用 Rails jquery ujs用于在我的应用程序中处理 ajax。此外,我还使用confirm选项来销毁任何记录。作为我当前的设置,我通过单击 data-remote=true 链接连接
我正在使用 Rails UJS。我有一个表单设置来执行远程提交,如下所示: 我正在尝试找到一种从 JavaScript 函数提交此表单的方法。我试过: var form$ = $("#new_sub
我已成功在一个 Rails (3.2.6) 应用程序中添加 ujs。添加 :remote => true 到我的表单标签允许我对我的 js.erb 文件进行 ajax 调用以动态加载 div 等..
我在 Rails 应用程序中使用 jQuery 方法“on”来将事件附加到并不总是存在的表单上。当 #myForm 附加到文档时,它似乎没有附加事件处理程序。 以下是 UJS 对 on() 的建议用法
我的 Rails 本地服务器正在努力寻找 jquery-ujs 文件。我该如何解决这个问题? application.js //= require jquery //= require jquery-
首先,对不起我的英语。我是巴西人,还在进步。 我想创建一个名为“collection_cascading_select”的辅助标记。该助手类似于“collection_select”,但他还有一个名为
我在获取 UJS 调用来更新页面显示时遇到问题。我想在选择框更改时更新 div 的值(我已经用 google 搜索了所有地方,但无济于事)。 我像这样设置更改函数(我使用 Haml): %script
我在 Rails 应用程序中使用 UJS 时遇到问题。我需要动态地将内容添加到表格中。问题是,即使是警报功能也无法启动。这是一段代码:_form_index.html.erb
我正在使用带有原型(prototype) ujs rails.js 脚本的 Rails 3.0。 我有一些 link_to "...", :remote => true在页面加载后添加到页面的链接,因
我正在尝试触发远程链接的 ajax:success 回调。我使用的是 Rails 3.0.8 和 jquery-rails 1.0.11。我运行 jquery 生成器来安装 javascript。 j
我正在使用 Rails UJS 根据我单击的链接将部分加载到容器中。我已经一切正常(请参阅我对问题 here 的回答以获取代码),但我想在加载内容时添加一个微调器。我该怎么做呢?我在 Simone C
Rails 版本:3.2.1 Ruby 版本:1.9.3p125 浏览器:Chrome 18.0.1025.162 开发操作系统:Mac OS/X Lion 服务器操作系统:CentOS 5 我正在尝
我正在使用 JQuery 1.4.4 和 jQuery UJS Rails.js 制作 Ruby On Rails 3.0.3 应用程序 ( https://github.com/rails/jque
sprockets 为 js Assets 做了所有的缩小,但是很多 javascript 是在 respond_to :js UJS 响应中编写的。 在编程时使 javascript 可读也会使浏览
这是一个很奇怪的问题。我有一个 Rails 应用程序,我在其中使用 UJS 将页面上的一个部分替换为另一个部分。最近,它停止工作了,所以我开始记录整个过程,看看它在哪里坏了。这是我发现的: 单击链接后
我有一个使用 data-remote => true 提交的表单。 该表单有一个字段,即文本区域。我想在文本区域长度为 0 时阻止提交表单,并且仅在长度为 GT 1 时允许提交表单。 如何以 Rail
新的和很酷的语法让我可以写: link_to some_path, :remote => true 生成 AJAX 请求。但是如果我需要更长的超时时间(例如 100000 毫秒),我可以在哪里设置呢?
我是一名优秀的程序员,十分优秀!