2010-06-12 2 views
1

저는 레일 UJS를 사용하여 라이트 박스에 내용을 삽입하는 가장 좋은 방법을 알아 내려고하고 있습니다. 같은 HTML을 생성ujs, jquery 및 rails로 콘텐츠를로드하는 방법은 무엇입니까?

<%= link_to "login", login_path, :remote => true %> 

:

<a data-remote="true" href="/login">login</a> 

그래서 모두가 잘 작동, 내가보기 파일을 만들었습니다 user_sessions/new.js.erb도 잘로드 I는 다음과 같습니다 링크가 ,하지만 내 질문에 어떤 페이지에 HTML을 추가 삽입 선호하는 방법은 무엇입니까? 비 js 페이지에 이미 로그인 양식이있는 것처럼 페이지에 해당 부분을로드 할 수 없습니까?

모든 아이디어가 매우 환영받을 것입니다. 에서 HTML의 조각을

$('div#yourDiv').html(blob_of_HTML); 

할 수 있습니다 부하 :

답변

1

나는 UJS에 의존하는 jQuery 플러그인 바콜이,이 일을 밖으로 종료 그리고 저는 용기가 많이 있다는 것을 압니다. 그러나 저는 이것을 모더럴 창을 수직으로 중심에두고 멋진 이중 경계 상황을 제공해야했습니다.

이 사람들에 대해 어떻게 생각하는지 알려주세요. 객체 this없이, 내가 그렇게 난 그냥 $.modal("<%= escape_javascript(render 'form') %>");와 플러그인을 호출 할 수 방법 jQuery 플러그인을 그냥 jQuery 오브젝트 자체에 메서드를 호출 할 때


아마도 추가 질문이 될 것이다?

+0

아마도이 기능을 모두 갖춘 http://jqueryui.com/을 살펴 봐야 할 것입니다. – nathanvda

+0

bleh, jQuery UI 모달 창 디자인에 익숙하지 않은 것 같습니다. 어쩌면 내가 그들과 함께 갈 것이지만, 라이브러리가 만드는 요소를 둘러싼 설계가 너무 힘들다. –

3

나는 당신이 요구하는지 이해하지만, 일반적으로이 같은 일부 기존 용기에 HTML 조각을 채울 수 있습니다 완전히 확실하지 않다 와 서버 측 조치 :

$('div#yourDiv').load(yourURL, function() { 
    // stuff to do when the content has been loaded 
}); 

당신이 완전한 페이지를 가지고 있다면, 당신은 다른 페이지로의 단지 부분를로드 할, 당신이 시도 할 수 있습니다 :

를 jQuery를 한 다음,로드 된 전체 페이지 내용을 그 페이지 전체 내부 "#something"을 찾아만을 타겟 컨테이너에 페이지의 일부를로드 지시
$('div#yourDiv').load(yourUrl + ' #something', function() { 
    // stuff to do ... 
}); 

.

jQuery.fn.modal = function(content) { 
    var modal_screen = $(document.createElement('div')).addClass("modal_screen"); 

    var modal_container = $(document.createElement('div')).addClass("modal_container"); 
    var modal_outer_border = $(document.createElement('div')).addClass("modal_outer_border").appendTo(modal_container); 
    var modal_inner_border = $(document.createElement('div')).addClass("modal_inner_border").appendTo(modal_outer_border); 
    var modal_contents = $(document.createElement('div')).addClass("modal_contents").appendTo(modal_inner_border); 

    $(modal_screen).appendTo('body'); 
    $(modal_container).appendTo('body'); 
    $(modal_contents).append(content); 
} 

:

$(this).modal("<%= escape_javascript(render 'form') %>"); 

user_sessions/new.js.erb 다음 내가 같은 jQuery 플러그인을 만들어 내에서

이를 :

관련 문제