Я создал большую таблицу с ячейками, которые будут отображать случайные числа, мне нужно установить пороговое значение для каждой ячейки с помощью JQuery, в настоящее время это работает только для моего первого сравнения, после чего, когда я ввожу пороговое значение, оно имеет забыл, какое значение я сравнил с моей первой ячейкой, и просто сравню все мои предыдущие сравнения с новым пороговым значением. Непонятно, как это проще сказать. Код ниже для сравнения
function OpenDialog(tdID) {
$('#openThreshold').dialog('open');
stopTimer();
$('#btnSaveThreshold').click(function () {
SetValuesForCompare(tdID);
});
}
function SetValuesForCompare(tdID) {
//Set the values ready for comparing the variables (also carry through the cell ID)
var thrsVal = $('#txtThreshold').val();
var cellVal = document.getElementById("Cell" + tdID).innerHTML;
CompareValues(thrsVal, cellVal, tdID);
}
function CompareValues(thrsVal, cellVal, tdID) {
//compare and choose colour
if (cellVal < thrsVal) {
document.getElementById("Cell" + tdID).className = 'red';
}
else if (cellVal == thrsVal) {
document.getElementById("Cell" + tdID).className = 'green';
}
else if (cellVal > thrsVal) {
document.getElementById("Cell" + tdID).className = 'yellow';
}
//Close dialog and hide all text boxes
$('#openThreshold').dialog('close');
$("#Thrs" + tdID).hide();
}
Добавьте класс "cellIsSet" или что-то в этом роде. Затем:
function CompareValues(thrsVal, cellVal, tdID) {
//compare and choose colour
if (cellVal < thrsVal && !$('#Cell'+tdID).hasClass('cellIsSet')) {
//document.getElementById("Cell" + tdID).className = 'red';
$('#Cell'+tdID).addClass('red').addClass('cellIsSet');
}
else if (cellVal == thrsVal && !$('#Cell'+tdID).hasClass('cellIsSet')){
//document.getElementById("Cell" + tdID).className = 'green';
$('#Cell'+tdID).addClass('green').addClass('cellIsSet');
}
else if (cellVal > thrsVal && !$('#Cell'+tdID).hasClass('cellIsSet')) {
//document.getElementById("Cell" + tdID).className = 'yellow';
$('#Cell'+tdID).addClass('yellow').addClass('cellIsSet');
}
//Close dialog and hide all text boxes
$('#openThreshold').dialog('close');
$("#Thrs" + tdID).hide();
}
Обратите внимание, что я переформатировал ваши вызовы getElementByID
, потому что вы все равно используете jQuery. Таким образом, если элемент уже имеет класс cellIsSet
, он не будет пытаться переформатировать из-за && !$('#Cell'+tdID).hasClass('cellIsSet')
.