2009-11-18 4 views
1

레일 2에서 숨기기 및 표시 효과를 만드는 가장 좋은 방법은 무엇입니까? JQuery 형식 솔루션을 사용합니까 아니면 더 좋고 더 좋고 쉽게 구현할 수 있습니까? 이 ASP.NET/MVCdiv 효과 숨기기/표시 Ruby on Rails 2

답변

5

가장 쉬운 방법은보기에 link_to_function을 사용하는 것입니다

<%= javascript_include_tag :defaults %> 

<%= link_to_function "toggle", "$('thing_#{@thing.id}').toggle()" %> 

<p id="thing_<%= @thing.id %>"> 
    <b>Body:</b> 
    <%=h @thing.body %> 
</p> 

은 RJS를 사용하는 것입니다 할 수있는 또 다른 방법,하지만 그것을 어떻게 응용 프로그램에 많이 의존한다. 그런 식으로 컨트롤러를 설정하여 RESTful 동작 외부의 사용자 지정 동작을 찾거나 기존 동작에서 XHR 요청을 찾습니다 ("request.xhr 경우"사용).

RJS가 예쁘다 쉬운 : 개인적으로

page["thing_#{@thing.id}"].toggle 

, 내가보기가 논리의 대부분이 없음을 가정하고 있기 때문에 무엇보다 $ (요소) .toggle()는, 그 자체가 RJS로보기 외부로 가치가 있다고 말하고 싶지만, 하지만 아마도 그것에 대한 의견이 많이 있습니다.

JavaScript 프레임 워크는 프로토 타입/scriptaculous에서 사용할 수없는 것을 필요로하지 않는 한 간단하게 기본값을 사용합니다.

+0

훌륭한 대답입니다. 우아하고 쉽습니다. 고마워. – kakubei

0

JQuery is an excellent choice 는 플랫폼에 관계없이, 루비에 그냥 잘 작동 마찬가지로

$('.elementClassname').show(600); 

토글도 사용합니다.

+0

숨기기로 기본 상태를 설정하는 방법이 있습니까? – bgadoci

+0

표시 : 없음, 가시성 : 숨김? – kd7

1
$('#elementid').hide(); 
$('#elementid').show(); 
$('.elementClassname').show(); 
$('.elementClassname').hide(); 

당신은 매개 변수를 제공 할 수 있습니다뿐만 아니라 같은

$('.elementClassname').show('slow'); 
$('.elementClassname').show('normal'); 
$('.elementClassname').show('fast); 

또는 숫자 값을처럼

1

레일즈에는 Prototype/Scriptaculous 자바 스크립트 라이브러리가 번들로 제공되지만 레일즈는 사용하려는 경우 사용자가 결정합니다. 결국에는 어떤 종류의 자바 스크립트를 사용해야 만합니다. 레일즈에 내장 된 특별한 기능은 없습니다.

저는 개인적으로 추천합니다 jQuery - 배우는 것이 빠르며 강력하고 확장 성이 좋습니다.

+0

내 거의 동일한 게시물을 30 초 이길 수 있습니다. – EmFi