2014-02-02 3 views
0

Я пытаюсь написать функцию if, чтобы проверить, имеет ли слайд портрет класса, и если так, добавьте класс родительскому классу portrait_slide.Оператор отображает ошибку в JSHint - Синтаксис обучения, если оператор

Вот что я до сих пор с редактированием

$('.cycle-slideshow').on('cycle-next', function (event, opts) { 

    var $this = this; 

    $('.slide').each(function (index) { 
     if this.hasClass('portrait')) { 
      this.parent().addClass('portrait_slide'); 
     } 

    }); 
}); 

Но я получаю сообщение об ошибке на if this.hasClass('portrait'); линии «Ожидаемым вызов присваивания или функции и вместо этого увидел выражение»

ответ

3

if отчетности требуют вокруг них круглые скобки.

if (this.hasClass('portrait')) { //no semi colon either 

Вы также должны понимать разницу между this и $(this). Один элемент DOM, другой - объект jQuery.

Я вижу, что вы делаете $this = this, что является нечетным, добавив переменную с $, как правило, это соглашение для кэширования объекта jQuery. Вы можете использовать $this = $(this) и добавить знак доллара перед экземплярами this по мере необходимости

parent() является функцией JQuery, но this является индексом .slide элемента. Либо использовать

$(this).parent().addClass(); 

Или используйте

this.parentNode.className += " portrait_slide"; 

То же самое относится и к this.hasClass(), вы используете метод JQuery на элемент DOM.

Используйте либо $(this).hasClass() или, если вы используете JavaScript (после погуглить JS класса содержит)

function hasClass(elem, klass) { 
    return (" " + elem.className + " ").indexOf(" "+klass+" ") > -1; 
} 
+0

JShint теперь говорит мне, что в строке отсутствует точка с запятой. Это верно? – uriah

+0

Нет, пожалуйста, логику JavaScript в JavaScript. Если утверждения очень простые –

+0

Большое вам спасибо за дополнительную документацию. Действительно помогает – uriah

0

Нет точки с запятой в конце, если испытания и нуждается в круглых скобках вокруг него

Изменить

if this.hasClass('portrait'); { 

} 

До:

if(this.hasClass('portrait')) { 

} 
Смежные вопросы