在我正在处理的应用程序中。如果那么外面的代码不起作用。我应该如何实现这一目标。例如,当我尝试将前两行放在外面时。它不起作用。
另外,我如何将重复代码放在某个变量中,并使用if else调用它。例如,这一个$(this).before(leftArrowHTML);
$('.lessonNavigation ').on('click', 'li', function () {
if ($(this).is('.assess')) {
$('.lessonNavigation li').not('.assess').attr('class', 'dn');
$('.lessonNavigation li.assess').attr('class', 'dn assess');
$(this).attr('class', 'activeLesson assess');
$(this).prev().addClass('expanded left');
$(this).next().addClass('expanded right');
$(this).before(leftArrowHTML);
$(this).after(rightArrowHTML);
} else if ($(this).is('.new')) {
$('.lessonNavigation li').not('.assess').attr('class', 'dn');
$('.lessonNavigation li.assess').attr('class', 'dn assess');
$(this).attr('class', 'activeLesson');
$(this).next().attr('class', 'expanded right brw');
$(this).next().next().attr('class', 'expanded right');
$(this).before(leftArrowHTML);
$(this).after(rightArrowHTML);
$('.arrow.left').attr('class', 'inactiveRightArrow');
}
});
答案 0 :(得分:1)
其他没有条件,你必须使用 else if ,你也缺少一个右括号。
} else if ($(this).is('.new')) {
编辑:您还缺少原始 if 声明
的结束括号if ($(this).is('.assess')) {
答案 1 :(得分:1)
只需将它们移到if
之外,但不要移到click
回调之外,这为this
提供了值。
$('.lessonNavigation ').on('click', 'li', function () {
if ($(this).is('.assess')) {
$(this).attr('class', 'activeLesson assess');
$(this).prev().addClass('expanded left');
$(this).next().addClass('expanded right');
} else if ($(this).is('.new')) {
$(this).attr('class', 'activeLesson');
$(this).next().attr('class', 'expanded right brw');
$(this).next().next().attr('class', 'expanded right');
$('.arrow.left').attr('class', 'inactiveRightArrow');
}
$('.lessonNavigation li.assess').attr('class', 'dn assess');
$('.lessonNavigation li').not('.assess').attr('class', 'dn');
$(this).before(leftArrowHTML);
$(this).after(rightArrowHTML);
});