javascript - 重置表并停止表复制

标签 javascript jquery html debugging

每次我退出该页面并返回该页面时,都会打印另一个表格。单击“单击此处”按钮,然后单击后退按钮,然后再次单击“单击此处”查看问题。我想防止代码每次从两页来回打印表格。我也想重置 table 。如果您单击某个单元格,它会改变颜色,如果您在页面上来回移动,该单元格仍为白色。 我缩短了代码,以便更容易找到问题。

代码:

Js 和 jQuery:

$(document).ready(function() {
    $('.page2').hide();

    $('#click').click(function() {
        $('.page1').hide();
        $('.page2').show();

        function generateGrid( rows, cols ) {
            var grid = "<table>";
            for ( row = 1; row <= rows; row++ ) {
                grid += "<tr>"; 
                for ( col = 1; col <= cols; col++ ) {      
                    grid += "<td></td>";
                }
                grid += "</tr>"; 
            }
            return grid;
        }

        $( "#tableContainer" ).append( generateGrid( 10, 10) );

        $( "td" ).click(function() {
            var index = $( "td" ).index( this );
            var row = Math.floor( ( index ) / 5) + 1;
            $( this ).css( 'background-color', 'white' );
        });

        $('.back').click(function(){
            $('.page2').hide();
            $('.page1').show();
        });
    });
});

HTML:

<html>
    <head>
        <link type="text/css" rel="stylesheet" href="stylesheet.css"/>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <title>Tic-Tac-Toe Pro</title>
    </head>
    <body>
        <div class="page1">
            <p id="click">click here</p>
        </div>

        <div class="page2">
            <div class="back">
                <img src="/image/Fw96Z.png">
            </div>
            </br>
            <span></span>
            <div id="tableContainer"></div>
        </div>

    <script type='text/javascript' src='app.js'></script>
    </body>
</html>

CSS:

    .page1 {
            font-family:Calibri;
            height: 100%;
            width:100%;
    }

    div{
            display:inline-block;
    }

    #click{
            position:absolute;
            background-color:Yellow;
            width:300px;
            height:100px;
            cursor: pointer;
            font-size: 50;
    }

    .back{
            margin-top: 10px;
            margin-left:10px;
            cursor: pointer;
    }

    img{
            width:20%;
    }

    .page2 {
            background-color: #B9D7D9;
            height: 100%;
            width:100%;
    }

    td {
            border: 1px solid;
            width: 25px;
            height: 25px;

    }

    table {
           border-collapse: collapse; 
    }

最佳答案

有问题的行是这样的:

$( "#tableContainer" ).append( generateGrid( 10, 10) );

append 函数只是将新内容添加到 tableContainer div 中已有内容的末尾。

将其更改为:

$( "#tableContainer" ).html( generateGrid( 10, 10) );

并且该div的内容每次都会被完全替换。

关于javascript - 重置表并停止表复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40408924/

相关文章:

javascript - 如何将数据从路由器组件传递到 Aurelia 中的子组件?

javascript - 将 <div>...</div> 导出为包含所有资源的 html 文档(如在线网页模板生成器)

php - Functions.php wordpress 不适用于样式表或 jquery

php - 使用 http post 的评级系统 - 避免滥用

html - div对齐问题

javascript - 在 ng-click 上将元素从另一个 ng-repeat 推送到 ng-repeat

c# - 动态地将 javascript 与 GridView 按钮绑定(bind)

javascript - 按下 CTRL-C 和 CTRL-V 时更改文本颜色

javascript - Bootstrap 将输入表单变成一个段落

php - 对php请求的post jquery请求使用一个删除函数