Ваш селектор Jquery недействителен, что вам действительно нужно сделать, это:
$("#signUp li").click(function(){
$(this).addClass("complete");
if(
$("#signUp li:first-child").hasClass("complete") &&
$("#signUp li:nth-child(5)").hasClass("complete") &&
$("#signUp li:nth-child(7)").hasClass("complete"))
{
$("#done").addClass("active");
}
});
Ваш текущий код выполняется только тогда, когда последний селектор имеет класс, потому что строки оцениваются как логическая операция. Это означает, что выполняется следующее:
"#signUp li:first-child" && "#signUp li:nth-child(5)" && "#signUp li:nth-child(7)"
Когда это оценивает true (что всегда происходит, потому что непустые строки имеют значение " truey "), оно просто возвращает последнее оцененное значение, которое будет "#signUp li:nth-child(7)"
, поэтому весь ваш оператор компилируется в:
if($("#signUp li:nth-child(7)").hasClass("complete")) {
$("#done").addClass("active");
};
});