Как остановить построение стола снова - PullRequest
1 голос
/ 08 июля 2011

У меня есть замечательная табличная функция от 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 ]

1 голос
/ 08 июля 2011

Вот, пожалуйста, начальник, обновленный, как вы и просили.

РЕДАКТИРОВАТЬ: Ой, теперь это работает:)

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

0 голосов
/ 08 июля 2011

Во-первых, всегда используйте идентичные операторы сравнения при сравнении логических значений:

if(firstTime === true)

Как говорится, вам это не нужно, если вы просто хотите восстановить свой стол. $('#statSheetTable').append(... просто "добавит" к тому, что там было. Убедитесь, что вы очистили его в начале как:

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