2011-07-27 6 views
0

나는 자바 스크립트를 배우려고 노력 중이며 붙어 있습니다.레일 3 - 아약스 - 일부 기본 자바 스크립트/Jquery 도움이 필요합니다.

지금은 정말 어리석은 간단한 갤러리/이미지 응용 프로그램이 있습니다. 내가 뭘하려는 건지, 누군가가 이미지를 클릭하면 내 모델 데이터에있는 모든 아약스가있는 URL로 하이퍼 링크가된다. 그 이유는 이미지를 클릭 할 때 점수/투표 카운터를 업데이트하는 등 아약스로 뭔가를하고 싶습니다. 내가 자바 스크립트로 하나를 하드 만하지만, URL을 여는 방법을 알아 냈어요 자바 스크립트로, 지금까지

<% @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" %> 

:

는 현재 뷰에서 나는이 작업을 수행. 여기 내 index.js.erb 코드 (실제 간단한)입니다 :

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

하지만 난 내 시야의 할 루프에서 오전처럼 내 g.source에 링크 할 방법을 알아낼 수 없습니다. 자바 스크립트에서이 모델 데이터에 어떻게 액세스합니까?

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

누구든지 내 응용 프로그램의 데이터와 상호 작용을 시작할 수 있습니다 방법에 대한 포인터를 가지고 : 나는 추적에 ... 자바 스크립트/application.js와 함께,하지만 이미지의 클릭에이 코드를 렌더링하는 방법을 알아 낸 열려있는 URL을 하드 코딩하는 것보다는? href 당신이 a 점에서 이미지 파일을받을 경우

감사

+0

당신의 이미지 링크가 true로 설정되면 아약스 콜이 이미지 컨트롤러로 전송됩니까? 메서드는 js에 응답해야하며 기본적으로 method.js 템플릿을 렌더링합니다. 해당 템플릿에서 더 많은 자바 스크립트를 포함시켜 작업을 완료 할 수 있습니다. – efoo

답변

2

당신은, 창에 이미지를 열 수있는 권리 경로에 꽤 많이 있습니다.

이 코드를보십시오 :

$(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이 필요합니다. 따라서 이미지 URL에 hyperlink을 얻으려면 $(this).closest("a")을 사용합니다.

+0

글쎄 그게 :) - 질문 : img의 앵커, href 속성 (내 머리 속에서 작동 함)을보고 있기 때문에이 링크를 열 때 내가보기에 작성한 모든 것을 보존하고 있습니까? link_to 도우미로 만든 HTML에서 볼 수 있듯이 링크를 여는 중입니까? – Kombo

+0

@Kombo 질문이 없습니다. 그러나 당신의 도우미는 다음과 같은 것을 낼 것입니다 : . 따라서 이미지를 클릭하면 새 창에서 이미지 만 열립니다. 거기에는 다른 HTML 요소가 없습니다. – TheVillageIdiot

+0

혼란스러운 질문은 죄송합니다. 나는 놀고있는 것으로 안다. 나는 javascript가 내가보기에 쓴 것 (예를 들어 : target => "_blank")에서 할당과 함께 링크를 여는 방법을 어떻게 유지하는지 궁금했다. 당신의 도움에 감사드립니다! 이것은 내 이해를 많이 도왔다. – Kombo

관련 문제