2012-06-11 5 views
0

У меня в основном все мои формы для разных контроллеров в модальном поле диалога jquery, и проблема, с которой я сталкиваюсь, заключается в том, что когда эти модалы загружаются, ссылки ujs (данные -remote, data-confirm и т. д.) полностью игнорируются jquery. Я думаю, что когда эти частичные файлы загружаются через ajax, события не активируются, чтобы включить те новые ссылки, которые добавляются в dom с помощью ajax. Кто-нибудь сталкивался с этим? Кажется, я не могу понять, как это сделать. Я могу опубликовать некоторый код, если это было не очень ясно ...jQuery ujs внутри jquery modal не работает

ответ

0

Ok поэтому я установил его с этим, используя диалоговое пользовательский интерфейс окна пользовательского JQuery я могу теперь сделать заказ подтверждает наверх удаленные истинные связи

var myCustomConfirmBox; 
$.rails.allowAction = function(element) { 
    var answer, callback, message; 
    message = element.data("confirm"); 
    answer = false; 
    callback = void 0; 
    if (!message) { 
    return true; 
    } 
    if ($.rails.fire(element, "confirm")) { 
    myCustomConfirmBox(message, element); 
    } 
    return false; 
}; 
myCustomConfirmBox = function(message, callback) { 
    $("#dialog-confirm .content").html(message); 
    return $("#dialog-confirm").dialog({ 
    resizable: false, 
    height: 180, 
    modal: true, 
    buttons: { 
    Continue: function() { 
     $.rails.handleRemote(callback); 
     return $(this).dialog("close"); 
    }, 
    Cancel: function() { 
     return $(this).dialog("close"); 
    } 
    } 
}); 
}; 
0

Попробуйте переместить init ваших ujs в открытый обратный вызов в диалоговом окне.

+0

Невозможно запустить jquery_ujs, только включив его в конвейер активов, помещает его в документ. Вы действительно имеете в виду добавление нового Magicmarkker

1

Если динамическая добавка добавляется динамически, события будут работать только в том случае, если вы используете делегирование событий.

Существует довольно хорошая запись об основах делегирования событий в jQuery здесь - http://jqueryfordesigners.com/simple-use-of-event-delegation/. В основном вы хотите переключить обработчики, созданные с помощью bind, чтобы использовать on.

+0

Функция рельсов по умолчанию для: remote => true и подтверждения данных - это то, что aren Не работает в ссылках, которые генерируются ajax. Когда у меня есть: data => {: confirm => "sure?"} С: remote => true, он задаст вопрос подтверждения, нажатие continue обновит страницу, а не удаленный вызов. – Magicmarkker

0

я попробовать метод, с помощью Magicmarkker, просто добавить версированную js import code на странице модального просмотра, и это работает, приветствует!

<script type="text/javascript" src="/assets/jquery_ujs.js?body=1"></script> 
Смежные вопросы