javascript - 语义 UI 模式未正确显示

标签 javascript jquery modal-dialog ejs semantic-ui

我一直在做一个项目,如果我单击“查看详细信息”按钮,它需要一个语义 UI 模态(弹出窗口)来显示,但每次弹出模态时,它的位置都很奇怪,我不能对它做任何事情(例如不能关闭它) enter image description here

这是我的 .ejs 文件和它的脚本部分

<% include header.ejs %>
<% include nav.ejs %>
<div class="page-hero" style="background-image: url('004.jpg'); width: 100%;">
<h1 id="eachTitle">MY PROFILE</h1>
</div>
<div class="ui container">
<form method="POST">
    <input type="text" name="search" placeholder="Search..." required class="searchBook">
    <input type="submit" value="Search">
</form>
<% for(var i = 0; i < results.length; i++){ %>
    <div class="ui grid">
        <div class="column four wide">
            <div class="ui card">
                <div class="image">
                    <img src = "<%= results[i].thumbnail %>"/>
                </div>
                <div class="content">
                    <div class="header">
                        <h1 class="ui small header title"><%= results[i].title %></h1>
                    </div>
                    <div class="meta">
                        <p>Author: <%= results[i].authors %></p>
                        <p>Published on: <%= results[i].publishedDate %></p>
                        <p>Pages: <%= results[i].pageCount %></p>
                    </div>
                </div>
                <div class="content extra">
                    <button class="ui button fluid" id="detail">View Detail</button>
                    <button class="ui button fluid" type="button" name="button">Add</button>
                </div>
            </div>
        </div>
    </div>
    <div id="modaldiv" class="ui modal">
        <i class="close icon"></i>
        <div class="header">
            Book info
        </div>
        <div class="content">
            <div class="discription">
                <div class="ui header">Book Description</div>
                <p><%= results[i].description%></p>
            </div>
        </div>
        <div class="actions">
            <div class="ui button">Delete</div>
        </div>
    </div>
<% } %>


</div>
<% include footer.ejs%>
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click', '#detail', function(){
    $('.ui.modal').modal('show');
});
})

</script>

一切都已定义,控制台没有显示任何错误

(此外,如果我呈现多本书并尝试单击查看详细信息按钮,页面就会变黑,但我认为这是一个循环错误) 有谁知道它为什么会发生以及我该如何解决?

最佳答案

我认为问题出在这个循环中:

for(var i = 0; i < results.length; i++).

您使用相同的 ID 和类名称初始化多个模态,因此当您尝试打开它时,我认为他想打开所有模态,这并不好。

$('.ui.modal').modal('show');

尝试查看您的控制台以验证它。 否则,为您创建的每个模式创建不同的类名或 ID 名,我认为它会被修复。

和平

关于javascript - 语义 UI 模式未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45603766/

相关文章:

javascript - jQuery 显示 div 不起作用

java - JDialog 的模态时 JProgressBar 不更新

javascript - has()为多维数组集返回false?

javascript - 全局 PHP 头文件中的 JQuery

javascript - Wordpress *get_current_user_id* 在远程服务器上返回 0,但在本地服务器上不返回

javascript - 如何使用类别限制 jQuery 自动完成的结果?

javascript - Jquery 检查元素在视口(viewport)中是否可见

java - java中字符串和日期时间的转换方法

javascript - 如何通过 jQuery post() 提交单选按钮值

javascript - 如何将参数从链接元素传递到模态窗口?