2011-12-18 68 views
1

我有一個容器td元素,我用其他元素使用HTML部分填充成功,它在頁面加載時完成。通過javascript文件部分調用更新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謝謝allot,Eyal。然後

+0

有人在那裏嗎?我仍然需要一些幫助... – 2011-12-20 20:28:00

回答

0

OK,我缺的是「」圍繞在我的AJAX create.js.haml

$('td.#{dom_id(@task)}_categories').html("#{escape_javascript(render(:partial => 'tasks/task_categories_mini_bar', :locals => {:task => @task}))}") 

這就是所有通話的部分。

相關問題