Я пытаюсь отобразить частичное всплывающее окно (в идеале модальное, что мне нужно выяснить) при нажатии на «имя группы», которое не основано на каком-либо объекте базы данных, но скорее на основе локальных переменных, полученных из API. Я видел эту более старую должность: Rendering partial in rails modal, но это просто не работает для меня. Когда я нажимаю, я просто направляюсь к корню. В настоящее время я пытаюсь сделать это, используя display: none на «render partial» и функцию .show() при нажатии на «имя группы».Рельсы рендеринга частично с модальными и локальными переменными
Я новичок в Rails и очень стараюсь изучить Javascript, поэтому я не знаю, что происходит не так.
Вот вид:
<div id="groups_show" style="display:none">
<%= render partial: 'groups/group_full', :locals => {group: group} %>
</div>
<%= link_to group.name, root_url, class: "groups_showme" %>
Javascript:
$('.groups_showme').click(function() {
$('#groups_show').show();
win = new Window({title: "Share This", width:200, height:150, destroyOnClose: true,
recenterAuto:false});
win.setContent('#groups_show',true,true);
win.show();
}
правок: FINAL КОД ЧТО РАБОТАЛ
$('.groups_showme').on('click', function(e) {
e.preventDefault();
$('#groups_show').show();
win = new Window({title: "Share This", width:200, height:150, destroyOnClose: true, recenterAuto:false});
win.setContent('#groups_show',true,true);
win.show();
return false;
});
Спасибо большое. Я считаю правильным. Хотя по какой-то причине рендер по-прежнему отображается на странице, а не как всплывающее окно. Я не могу понять, почему. –
@MatthewMelone, похоже, что код теперь работает в соответствии с вашим последним выпуском? Кстати, нужен только один метод для остановки ссылки, либо preventDefault, либо 'return false' –
А, спасибо. Если я правильно понимаю, весь win.setContent от прототипа, и я на jQuery. Итак, теперь я пытаюсь изменить jQuery и заканчивать этот беспорядок. '$ ('groups_showme. ') На (' нажмите', функция (е) { e.preventDefault();. $ ('# groups_show') шоу();. вар HTMLString = $ (это) .html(); вар dialog_form = $ ('