如何阻止表再次构建

时间:2011-07-08 18:09:57

标签: javascript jquery html-table

我有一个来自josh.trow @ link的可爱表函数,可以构建一个可以填充颜色的4x4表。唯一的问题是它每次调用函数时都会重建它(因此我第一次调用文件时看到一个4x4表,第二次看到一个8x4表,依此类推。)它不会倍增行因为它们已经限制为4个。

我无法看到我需要进行哪些检查,将表的列限制为仅构建一次。 (4)

这是JS代码:

function repeatedFunction(L, G, P, D) {
jQuery.fn.reverse = [].reverse;

var completeData = [L, G, P, D];
var max = 4;
$.each(completeData, function(intIndex, objValue) {
    if (objValue > max) max = objValue;
});
for (var i = 0; i < max; i++) 
{
    $('#statSheetTable').append('<tr id="resultRow' + i + '"></tr>');
    $.each(completeData, function(intIndex, objValue) {

    $('#resultRow' + i).append('<td name="column' + intIndex + '" ></td>');
    });
}

$.each(completeData, function(intIndex, objValue) {
    $('td[name=column' + intIndex + ']').reverse().each(function(idx, val) {
        if (idx < objValue) $(this).addClass('complete' + intIndex);
    });
});
}

我尝试使用一个全局变量,它阻止了表的复制,但后来我的颜色填充代码无法正常工作(因为无法使用新指令刷新以填充颜色)。

基本上我添加到上面的函数是:

var firstTime = true;
.....
function repeatedFunction(L, G, P, D, 4) {
if(firstTime == true)
{
    .....
    // code from above block
    .....
    firstTime = false;
}

您经验丰富的JS眼睛是否可以看到我可以限制桌子建造更多列的位置?

2 个答案:

答案 0 :(得分:1)

在这里,你去了首席,根据你的要求更新。

编辑:哎呀,现在它起作用了:)

http://jsfiddle.net/X83ya/2/

答案 1 :(得分:0)

首先,在比较布尔值时始终使用相同的比较运算符:

if(firstTime === true)

话虽如此,如果你只是想重建你的桌子,你不需要它。 $('#statSheetTable').append(...只会“添加”在那里的任何内容。确保你在开头清除它,如下:

...
var max = 0;
$('#statSheetTable').html('');
...