Подтвердить что ты не робот

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>
4b9b3361

Ответ 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', это фиксировало ошибку, которая также помогает кому-то другому.