通过从javascript文件中调用部分来更新html元素
Updating html element by partial called from javascript file
我有一个容器td
元素,我使用HTML部分成功地填充了其他元素,这是在页面加载时完成的。
部分运行作为参数的任务对象,并决定添加哪些元素。
在一个特定的操作完成后,任务对象被更新,我想通过再次运行部分来更新容器。
我用更新的任务从我的create.js.haml
调用这个部分,部分运行并构建正确更新的HTML(我可以在Firebug响应中看到它)。
但是实际的页面没有更新。我遗漏了什么?
这是我的文件:
html.haml
承载容器td
:
%td#task-categories{ :class => "#{dom_id(task)}_categories"}
= render 'task_categories_mini_bar', :task => task
部分html.haml
:
- _MAX_DISPLAYED_CAT = 3
- cat_index = 0
- task.categories.each do |category|
- if (cat_index == _MAX_DISPLAYED_CAT)
%td{:style => "padding-left:1px; padding-right:5px"} ...
- break
- cat_index += 1
%td{ :class => "task-category-color_#{dom_id(category)}",
:style => "width:60px; background:#{category.color}; border:solid 1pt lightblue; border-radius:3pt; text-align:center; "}
= truncate(category.name, :length => 10)
它们组合在一起形成了这个HTML:
<td id="task-categories" class="task_3_categories"> </td>
<td class="task-category-color_category_1" style="width:60px; background:#b8d7ff; border:solid 1pt lightblue; border-radius:3pt; text-align:center; "> cat1 </td>
<td class="task-category-color_category_2" style="width:60px; background:#ff8fcb; border:solid 1pt lightblue; border-radius:3pt; text-align:center; "> cat2 </td>
这里有另一个问题-两个添加的类别tds被添加到第一个容器td下面。我怎么能把它们加进去而不是放在后面呢?
现在这里是create.js.haml
再次调用部分:
$('td.#{dom_id(@task)}_categories').html(#{escape_javascript(render(:partial => 'tasks/task_categories_mini_bar', :locals => {:task => @task}))})
同样,响应HTML确实显示了一个新的HTML,但页面没有更新。
我使用rails 3.0.10感谢分配,Eyal.
那么,我缺少的是在我的ajax create.js.haml
中调用部分的"$('td.#{dom_id(@task)}_categories').html("#{escape_javascript(render(:partial => 'tasks/task_categories_mini_bar', :locals => {:task => @task}))}")
这。
相关文章:
- 使用 node.js 和 javascript 更新 HTML 对象
- 如何从弹簧控制器方法更新html img src
- 以非阻塞方式更新HTML画布
- 如何在加载页面后更新 HTML
- 根据json更新html
- Angular数组更改时更新HTML视图
- 根据ajax json响应更新html表
- 从数组中删除值,用新的数组总数更新html或'$'如果没有总计
- 测试React中的点击事件是否会更新HTML
- 动态更新Html中的列表
- Jquery函数更新html
- JavaScript/jQuery:在选择列表更改时更新HTML
- 通过ajax更新HTML块内容
- 当我更新HTML时,Keydown事件停止触发
- 动态更改语言时,应更新HTML lang属性
- 更新html页面中的数据
- 如何使用BackboneJs获取JSON数据和更新html
- 如何在更改一列时更新HTML表行中的单元格
- 无法使用 innerHTML 使用 JavaScript 更新 HTML 表
- 当表单使用 ajax 和 Codeigniter 更改时自动更新 html