Почему мой jQuery не работает?

Я уверен, что у меня просто пердит мозг, и мне не хватает чего-то очевидного, но, пожалуйста, помогите.

Я не могу понять, почему следующий код (раннее кодирование пользовательского слайд-шоу) не разрушается при загрузке документа.

$(document).ready(function() {

    var numSlides = $('#slides .slide').length();
    var wrapperWidth = $('#homeBanner').width();
    var totalWidth = numSlides * wrapperWidth;

    // set width of #slides to width of all .slide elements added together
    $('#slides').css('width', totalWidth+'px');

}); // end document.ready()

2 ответа

Решение

Длина это свойство, а не метод.

var numSlides = $('#slides .slide').length; // note, no parens

Чтобы получить количество слайдов на веб-странице, вы должны использовать любой из jQuery .size() метод или .length имущество. если я правильно помню, вы не можете называть длину как метод.

var numSlides = $('#slides .slide').size();

Кстати, .width() удваивается как установщик и получатель, если вы работаете со значениями пикселей, так что вы можете упростить вашу последнюю строку, которая редактирует свойство CSS так же.

$('#slides').width(totalWidth);

Возможно, вы не захотите использовать знак доллара ($), если не уверены, что jQuery - единственная библиотека JavaScript для вашего проекта. Вы можете заменить первый знак доллара на jQuery, а затем добавить знак доллара в параметры анонимной функции. Таким образом, вы все еще можете безопасно использовать знак доллара в методе document.ready(). Пример:

jQuery(document).ready(function($) { /*code here*/ });

Надеюсь, что это поможет вам решить вашу проблему, удачи, и дайте мне знать, если вам нужна дополнительная помощь.

Ура!

Другие вопросы по тегам