【问题标题】:How to add pop-up window/modal to dynamically created tables如何将弹出窗口/模式添加到动态创建的表中
【发布时间】:2015-05-14 08:43:39
【问题描述】:

HTML

<div class="wrapper">
    <div class="profile">
        <div id='entrydata'></div>
    </div>
</div>

Javascript

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
    $(function() {
        var dmJSON = "data.json";
        $.getJSON(dmJSON, function(data) {
            $.each(data.records, function(i, f) {
                var $table = "<table border=5><tbody><tr>" + "<td>" + f.Clue + "</td></tr>" + "<tr><td>" + f.Answer + "</td></tr>" + "<tr><td>" + f.Status + "</td></tr>" + "<tr><td> " + f.Views + "</td></tr>" + "</tbody>&nbsp;&nbsp;&nbsp;</table>"
                $("#entrydata").append($table)
            });
        });
    });
</script>

以上代码动态创建表并显示我的 JSON 文件中的数据。我想将这些表格作为按钮并将弹出窗口添加到这些表格中,这样当单击表格时会出现一个弹出窗口,并且每个弹出窗口应该有不同的数据。对此的任何解决方案都会有所帮助。提前致谢。

【问题讨论】:

  • 至少告诉我们你尝试了什么
  • 在 HTML 中,没有诸如“模态弹出”之类的东西(丑陋的 alert() 除外)。您可以在顶部显示灰色、半透明、全宽和全高图像以使现有内容变灰,并在其顶部显示一个 div 用于弹出内容。我敢打赌有很多用于此目的的 Jquery 模块。
  • 您是否要求点击另一个 ajax 调用并将日期显示为弹出窗口中的表格?
  • 没有。我的表已经有预定义的数据。在弹出窗口中,我想详细描述我的表格数据
  • 你的问题解决了吗?

标签: javascript jquery html css json


【解决方案1】:

主要技巧是将点击处理程序绑定到文档:

$(document).on("click", ".buttonInTd", function() {
    /* give your buttons the 'buttonInTd' class and add your onclick code here */
});

这样做将允许您动态创建一个表并仍然捕获它的事件。

要处理模态框和弹出窗口,我建议只使用众多可用的插件之一。我真的很喜欢featherlight

【讨论】:

    【解决方案2】:

    HTML:

    <html>
    
        <head>
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
    
            </script>
            <script>
                $(document).ready(function() {
                    $(function() {
                        var dmJSON = "data.json";
                        $.getJSON(dmJSON, function(data) {
                            var $count = 0;
                            $.each(data.records, function(i, f) {
                                var $table = "<button type='button' class='show_btn'>show table" + ++$count + "</button><br><table border=1 class='table_hide'><tbody><tr>" + "<td>" + f.Clue + "</td></tr>" + "<tr><td>" + f.Answer + "</td></tr>" + "<tr><td>" + f.Status + "</td></tr>" + "<tr><td> " + f.Views + "</td></tr>" + "</tbody></table>"
                                $("#entrydata").append($table)
                            });
                            $(".show_btn").click(function() {
                                $(this).next().next().show()
                                $(this).hide();
                            });
                        });
                    });
                });
            </script>
            <style>
                .table_hide {
                    display :none;
                }
            </style>
        </head>
    
        <body>
            <div class="wrapper">
                <div class="profile">
                    <div id='entrydata'></div>
                </div>
            </div>
        </body>
    
    </html>
    

    【讨论】:

    • 我的错,你添加到DOM后绑定了。
    猜你喜欢
    • 2021-04-28
    • 2021-10-17
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多