如果那么代码之外的代码不起作用

时间:2014-06-10 02:46:19

标签: javascript jquery

在我正在处理的应用程序中。如果那么外面的代码不起作用。我应该如何实现这一目标。例如,当我尝试将前两行放在外面时。它不起作用。

另外,我如何将重复代码放在某个变量中,并使用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');
}
});

2 个答案:

答案 0 :(得分:1)

其他没有条件,你必须使用 else if ,你也缺少一个右括号。

} else if ($(this).is('.new')) {

编辑:您还缺少原始 if 声明

的结束括号
if ($(this).is('.assess')) {

"elseif" syntax in JavaScript

答案 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);
});