Когда вы пишете
val myTuple = (1, 2, 3)
, тип myTuple
считается (Int, Int, Int)
. Поэтому, когда вы match
, все шаблоны должны быть совместимы с этим типом, т. Е. Должны быть значения этого типа, которые бы соответствовали шаблону. В противном случае шаблон бесполезен и может быть удален. case (a, b)
- такая бесполезная картина.
В фрагменте 1 шаблон не бесполезен, потому что является совместимым с Any
.
Для объектов DOM также существует метод removeEventListener
, который удаляет слушателя из объекта. В вашем случае вы можете назвать это:
pTag.removeEventListener("click", taskDone);
Ответ на актуальную проблему: было бы достаточно добавить функцию обратного вызова для проверки.
function taskDone(){
if (isLineThrough) {
taskTag.style.textDecoration = "none";
isLineThrough = false;
return;
}
taskTag.style.textDecoration = "line-through";
isLineThrough = true;
}