2012-07-20 1 views
0

AJAX 원격 호출을 passcheck_path으로 만들고 그 주위의 p 태그는 전체 페이지를 다루는 JQuery 모달 상자를 활성화하는 기능을 제공하는 링크가 있습니다. JQuery 함수로 Rails 원격 호출 방지

$().ready(function() { 
    $('.blackoutwindow').jqm({ 
     modal: true, 
     trigger: '.blackout', 
     overlay: 100 
    }); 
}); 

내가 링크를 클릭

은 모달이 나타나지만 원격 호출이 전혀 발생하지 않습니다 다음과 같이

<p class="right blackout"> 
    <%= link_to "blank screen", passcheck_path, :remote => true %> 
</p> 

는 JS이다. 그러나 p 태그를 제거하면 원격 호출이 완벽하게 작동하지만 분명히 모달이 트리거되지 않습니다. 왜 이런 식으로 행동하는지 잘 모르겠지만 자바 스크립트가 무언가를 무시한다고 가정합니다.

도움을 주시면 감사하겠습니다.

+0

무엇 당신의 .right와 .blackout을위한 CSS? 정상 링크가 작동합니까? – Dougui

+0

CSS는 오른쪽으로 뜨고 글꼴 크기와 색상 및 재료를 설정합니다 ... 모달은 모든 링크에서 작동하며 AJAXy 항목은 javascript가 주석 처리되거나'p' 태그가 제거 된 경우에만 작동합니다 ... –

+0

js 콘솔에 오류가 표시됩니까? – Dougui

답변

0

jqModal plugin 링크에 정의 된 모든 클릭 핸들러와 레일별로 정의 된 모든 클릭 핸들러를 바인딩 해제합니다. jqModal 꽤 오래된 것 때문에

그래서 중 당신은 another one 또는 jqueryui modal dialogs에 플러그인을 전환하거나 jqModal의에서 onShow 콜백 원격으로 호출하여 workround를 구현할 수 있습니다

$('.blackoutwindow').jqm({ 
    modal: true, 
    onShow: function() { 
     $.get($(this).attr('href')); // DIY Implementation of the remote call 
    }, 
    trigger: '.blackout', 
    overlay: 100 
}); 

Have a look at this fiddle to see the problem and the solution

+0

정말 고마워. :). –