在failing to achieve this與link_to remote之後,我決定嘗試jQuery方式。 這是jQuery循環和rails循環以及它們如何交互。問題是,我得到僅在div的出每個循環的一個記錄點擊次數,所以事情是不是真正的工作。這裏是代碼:從動態創建的div數組中註冊onclick事件? Rails + JQuery的?
<% @node.parent_relation.videos.each_with_index do |vid, idx| %>
<%= image_tag("http://img.youtube.com/vi/#{vid.content}/1.jpg", :id => "img_div_#{idx}") %>
<div id="vid_vid_<%=idx%>" style="display: none"> <%= vid.id %></div>
<% end %>
<script>
var ids = "<%= @node.parent_relation.videos.length %>";
var div_arr = [];
var img_arr = [];
var vid_id = 0;
for(i=0; i < parseInt(ids); i++){
var x = String("vid_vid_"+String(i));
var y = String("img_div_"+String(i));
div_arr.push(x);
img_arr.push(y);
}
for (i=0; i < parseInt(ids); i++){
var vst = '#'+String(img_arr[i]);
var dst = '#'+String(div_arr[i]);
$(function() {
$(vst).click(function(){
var vid_id = $(dst).html();
console.log(vid_id);
$.post("/nodes/iframize/", {video_id: vid_id});
});
})
}
</script>
並且在節點控制器和一個iframize行動js.erb從respond_to代碼format.js更新DIV在行動,這部分工程..
非常感謝,非常感謝任何意見..
嘗試使用.on('click',function(){})來代替。 – Chibuzo 2012-04-02 16:53:22