Почему jsHint предупреждает меня: «(var) определен, но никогда не используется»?

Я использую CodeKit для запуска jsHint над своими скриптами и минимизации их, и я хотел бы понять следующую ошибку:

    // create a next button for each text input and wire it for nextQ()!
    var next = $('<a class="button next">Next</a>')
        .on( 'click', function() {
            nextQ( $(this) );
        })
        .insertAfter( $questions.find(':text') );

jsHint предупреждает:

next определен, но никогда не используется

Учитывая, что элемент вставляется после () при каждой загрузке страницы, является ли это ограничением jsHint или я делаю что-то не так? Мой jQuery довольно прост, и я хотел бы извлечь уроки из ошибки!


person ptim    schedule 05.12.2012    source источник
comment
Вы определяете next. Где вы его используете?   -  person kojiro    schedule 05.12.2012
comment
Почему у вас вообще есть var next = в вашем коде? Здесь он не должен быть нужен.   -  person Mark Schultheiss    schedule 05.12.2012


Ответы (2)


Итак, вы определяете обратный вызов, который не нужно присваивать переменной; вы можете просто сделать:

$('<a class="button next">Next</a>')
    .on( 'click', function() {
        nextQ( $(this) );
    })
.insertAfter( $questions.find(':text') );

Так что следующий не имеет смысла.

person RonaldBarzell    schedule 05.12.2012

Переменная next не нужна, так как .insertAfter() вызывается для возвращаемого значения из .on(). Если вы не собираетесь что-то вызывать на next, вы можете просто сделать:

$('<a class="button next">Next</a>')
    .on( 'click', function() {
        nextQ( $(this) );
    })
    .insertAfter( $questions.find(':text') );
person Jon Cairns    schedule 05.12.2012