2011-07-27 59 views
0

我想學習一些JavaScript,並已陷入困境。Rails 3 - Ajax - 需要幫助一些基本的Javascript/Jquery

現在,我有一個非常愚蠢的簡單圖庫/圖像應用程序。我試圖做的就是這樣,當有人點擊圖片時,它會將它們超鏈接到我的模型數據中包含的所有ajax網址。之所以我也想用ajax做點什麼,比如點擊時更新圖片的評分/投票計數器。

眼下在視圖中我這樣做有:

<% @galleries.each do |g| %> 
    <% for image in g.images %> 
    <div id="picture"> 
     <%= render 'top_nav'%> 

     <%= link_to image_tag(image.file_url(:preview)), g.source, :remote => true, :target => "_blank" %> 

到目前爲止,使用javascript我已經找到了如何打開一個網址,但只有我一個硬編碼到的JavaScript。這裏是我的index.js.erb的代碼(真正簡單):

window.open("http://www.google.com"); 

但我想不出像我在我看來,我們做環我將如何鏈接到我g.source。如何在javascript中訪問此模型數據?我已經找到了如何呈現,雖然在圖像的點擊這個代碼,與後續的...的JavaScript/application.js中:

$(function() { 
    $("#galleries #picture a img").live("click", function() { 
     $.getScript(this.href); 
     return false; 
    }); 
}); 

任何人有我如何能開始與我的應用程序的數據交互任何指針而不是在開放中對網址進行硬編碼?

感謝

+0

你的圖像鏈接與遠程真發送ajax調用圖像控制器?該方法需要響應js,默認情況下它會呈現模板method.js。在該模板中,您可以包含更多的JavaScript來完成操作。 – efoo

回答

2

您是非常正確的道路,在一個窗口中打開圖像,如果href你從a點到圖像文件。

嘗試使用此代碼:

$(function() { 
    $("#galleries #picture a img").live("click", function() { 
     var lnk = $(this).closest("a").attr("href"); 
     window.open(lnk); 
     return false; 
    }); 
}); 

"#galleries #picture a img"是給你img元素,但你需要它包含了圖像的hyperlink。因此我們將使用$(this).closest("a")獲取hyperlink圖片網址。

+0

那麼工作:) - 問題:因爲我們正在看img的,錨的,href屬性(通過它在我的腦海中工作),它保存了我在視圖中寫入的所有內容,當我們打開此鏈接?當它打開鏈接時,它會以HTML格式從我用link_to helper創建的鏈接中看到它? – Kombo

+0

@Kombo不明白你的問題。但是你的幫手會發出這樣的東西:''。所以當你點擊圖片時,它只會在新窗口打開圖片,那裏不會有其他的html文件。 – TheVillageIdiot

+0

對這個令人困惑的問題抱歉。我想出來玩。我很好奇,如果JavaScript是如何保留從我在視圖中寫的鏈接打開鏈接的方式(例如a:target =>「_blank」)與作業。我很感謝你的幫助!這幫助我瞭解了很多。 – Kombo