Функция JQuery, предотвращающая удаленный вызов Rails
У меня есть ссылка на моей странице, которая делает AJAX удаленный вызов passcheck_path
и p
теги вокруг него предоставляют функцию активации модального окна JQuery, которое охватывает всю страницу.
<p class="right blackout">
<%= link_to "blank screen", passcheck_path, :remote => true %>
</p>
JS выглядит следующим образом:
$().ready( function() {
$('.blackoutwindow').jqm({
modal: true,
trigger: '.blackout',
overlay: 100
});
});
Когда я нажимаю на ссылку, появляется модал, но удаленного вызова не происходит вообще. Однако, когда я удаляю p
теги, удаленный вызов работает отлично (но, очевидно, модальный не срабатывает). Я действительно понятия не имею, почему это ведет себя так, но я предполагаю, что javascript переопределяет что-то?
Ваша помощь будет принята с благодарностью.
1 ответ
Плагин jqModal, который вы используете, освобождает все обработчики кликов, определенные в вашей ссылке, в том числе и с помощью rails.
Так что либо вы переключаете плагины на другой, либо модальные диалоговые окна jqueryui, потому что jqModal кажется довольно устаревшим, или вы можете реализовать рабочую среду, вызывая удаленно с помощью обратного вызова onShow jqModal:
$('.blackoutwindow').jqm({
modal: true,
onShow: function() {
$.get($(this).attr('href')); // DIY Implementation of the remote call
},
trigger: '.blackout',
overlay: 100
});