У меня есть приложение meteor, которое использует Semantic UI. Для этого я использую семантический пакет: ui-css.Semantic UI Modal появляется только один раз в Meteor
У меня есть шаблон, называемый проектом, где я хочу показать модальный. Там для меня создал второй шаблон, который является модальным, как это:
<template name="xform">
<div id="modal" class="ui modal">
<i class="close icon"></i>
<div class="header">New Project</div>
<div class="content">
<div class="ui form" id="newProject">
<div class="one fields">
<div class="field">
<legend>Project Details</legend>
<label>Name</label>
<input id="name" name="name" type="text" placeholder="Project name">
</div>
<input type="submit" class="button small createProject" style="color:white;position:relative;float:right;padding: 0.875rem 1.75rem 0.9375rem 1.75rem;font-size: 0.8125rem;" value="Create">
</div>
</div>
</div>
<div class="actions">
<div class="ui button">
Cancel
</div>
<div class="ui button">
Okay
</div>
</div>
</div>
</template>
Тогда я haved добавил событие к кнопке, как это, чтобы показать модальный:
Template.projects.events({
'click .newProject': function(event, template){
template.$('.ui.modal').modal({
onDeny : function(){
return false;
}}).modal('show');
}
});
Если я нажимаю кнопку в первый раз модальный открывается, как хотелось. Я вижу, что модаль теперь уже не внутри html моего шаблона, а в конце моего тела. Я могу закрыть модальный, используя кнопку закрытия, но когда я теперь попытаюсь открыть его снова, он больше не открывается. Модальный div все еще находится на дне моего тела.
Я пробовал несколько способов обхода этой проблемы, но никто не работал.
Вот мой полный код: http://i.imgur.com/r9JNrlr
Вы в основном ответили на вопрос, семантический ui модальный код перемещает div в нижнюю часть тела, поэтому, когда вы вызываете 'template. $ ('. Ui.modal') ...' вы только ' в шаблоне - в этом случае шаблон «проектов». Самый простой, хотя и не обязательно правильный способ - просто использовать глобальный объект jQuery '$ ('. Ui.modal')'. Не обязательно правильно, я имею в виду, что вы, вероятно, должны ссылаться на него с уникальным атрибутом id, чтобы избежать конфликтов между несколькими модалами. –
Я пробовал это так, как вы только что описали, просто используя jQuery без ссылки на шаблон, но затем я получаю «Uncaught TypeError: $ (...). Modal не является функцией». Я не могу понять, почему это происходит. – Sebi55
Странно, я только что сбил тестовый код, и он отлично работает для меня. Есть ли в вашем шаблоне
тег? Удивительно, если это аналогичная проблема для той, которая была решена здесь: http://stackoverflow.com/a/30381769/2723753 –