Uncaught TypeError: Object # <Object> не имеет метода 'movingBoxes'
Я пытаюсь использовать плагин movingBoxes с моим сайтом asp.net mvc, и он не работает (очевидно).
У меня есть movboxes.js, импортированный в мой тег head в файле site.master, например:
<script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script>
и браузер успешно получит этот script. Теперь у меня есть обычный вид, который наследует от site.master, который имеет этот немного jquery в нем, который вызывает плагин movingBoxes
<script type="text/javascript">
$(document).ready(function () {
$($('#slider-one'));
$('#slider-one').movingBoxes({
startPanel: 1,
panelWidth: .5,
fixedHeight: false
});
$('#slider-two').movingBoxes({
startPanel: 1,
panelWidth: .5,
fixedHeight: false
});
});
</script>
Когда я просматриваю страницу. Все прекрасно работает (включая другие jquery stuff), за исключением этого плагина, и я получаю эту ошибку.
![enter image description here]()
И вот описание ошибки
![enter image description here]()
Любая помощь будет оценена
ИЗМЕНИТЬ
По-видимому, у меня было это:
<script type="text/javascript" src="../../Scripts/jquery-1.4.1.js" />
<script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script>
И теперь он работает, изменяя его на следующее:
<script type="text/javascript" src="../../Scripts/jquery-1.4.1.js"></script>
<script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script>
Ответы
Ответ 1
Есть несколько вещей, которые вы можете попытаться заставить работать.
-
АБСОЛЮТНО уверен, что ваш script втягивается на страницу, один из способов проверить - использовать вкладку "Источники" в Отладчике Chrome и искать файл.
-
Убедитесь, что вы включили script после включения jQuery, поскольку это, безусловно, зависит от этого.
Кроме этого, я проверил API, и вы, безусловно, все делаете правильно, насколько я могу судить. Лучший друг удачи!
EDIT: убедитесь, что вы закрыли тэг script. Там ниже ответ указывает на то, что это решение.
Ответ 2
Пожалуйста, имейте в виду, что только несколько элементов могут быть самозакрывающимися, большинство других нужно закрыть, добавив явный тег . В приведенном выше случае первый тег script был закрыт неправильно, тэг конца script второго script затем закрыл раздел script, в результате чего только первый script был загружен как внешний script > источник и игнорирование второго script.
Более подробная информация о том, какие теги могут быть закрыты самостоятельно, взгляните на черновики W3C для HTML5 (хотя в предыдущих версиях HTML это определение не отличалось):
http://www.w3.org/TR/html5/syntax.html#end-tags (8.1.2.1, пункт 6)
Ответ 3
У меня была та же проблема.
Я изменил порядок скриптов в головной части, и это сработало для меня.
Каждый script нужен плагин - должен оставаться на месте.
Например:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#slider').cycle({
fx: 'fade'
});
});
</script>
Ответ 4
У меня была такая же проблема с плагином адаптивной загрузки jquery (http://responsive-slides.viljamis.com/).
Я исправил его, не используя короткую версию jQuery $(".rslides").responsiveSlides(..
, а скорее длинную версию: jQuery(".rslides").responsiveSlides(...
Итак, переключение $
в jQuery
, чтобы не вызвать конфликт или использовать правильный режим jQuery no conflict (http://api.jquery.com/jQuery.noConflict/)
Ответ 5
Когда у меня была эта проблема, это было потому, что я пытался использовать фактическую функцию вместо анонимной функции.
Неправильно:
$(document).on('change', "#MyId", MyFunction());
Правильный
$(document).on('change', "#MyId", MyFunction);
или также правильно, и если вам нужно передать объект события или другие параметры.
$(document).on('change', "#MyId", function(e) { MyFunction(e); });
Ответ 6
У меня была такая проблема, потому что я использовал тег IMG и тег UL.
Попробуйте применить плагин "углы" к таким элементам, как $('#mydiv').corner()
, $('#myspan').corner()
, $('#myp').corner()
, но НЕ для $('#img').corner()
!
Это правило связано с добавлением дочерних DIV в указанный элемент для эмуляции эффекта округлого угла. Поскольку мы знаем, что элемент IMG не может иметь дочерних элементов.
Я решил это, обернув нужный элемент в div и изменив IMG на DIV с помощью свойства background: CSS.
Удачи!
Ответ 7
На самом деле, я думаю, что вы загрузили только часть script.
Попытайтесь проверить флажок "Core" перед загрузкой всего script в jQuery-сайте.
Ответ 8
У меня была та же проблема, с которой я дважды связал jquery. Более поздняя версия перезаписывала мой плагин.
Я только что удалил более поздний jquery, который начал работать.
Ответ 9
Также неплохо убедиться, что вы используете правильную версию jQuery. Недавно я приобрел проект с использованием jQuery 1.6.2, который не работал с плагином hoverIntent. Обновление для последней версии исправлено для меня.
Ответ 10
Я обнаружил, что я использовал селектор для моего rendorTo div, который использовал для рендеринга графиков диаграмм столбцов. По-видимому, он добавляет селектор для вас, поэтому вам просто нужно пройти идентификатор.
renderTo:
$ ('# myGraphDiv') в строку 'myGraphDiv', это фиксировало ошибку, которая также помогает кому-то другому.