2013-04-23 2 views
2

Я разрабатываю веб-приложение ASP.NET MVC 4, которое использует последние библиотеки пользовательского интерфейса JQuery и JQuery и автоматически ссылается на них (на странице _Layout.cshtml).JQuery UI sortable() метод не поддерживается ошибка

Я выполнял руководство here, чтобы реализовать функциональность переупорядочения перетаскивания на столе.

Но даже когда я явно добавляю ссылку на последний файл пользовательского интерфейса JQuery в модели просмотра, где это необходимо, например.

<script src="/Scripts/jquery-ui-1.10.2.min.js" type="text/javascript"></script> 

способ сортировки() не работает. Он не отображается в Visual Studio intellisense, и он не работает при запуске. При запуске в Internet Explorer (или в любом браузере) я просто получаю сообщение об ошибке «Объект не поддерживает свойство или метод« sortable »».

Вот как я пытаюсь использовать метод:

 <script type="text/javascript"> 
     $(document).ready(function() 
     { 
      $("#clueTable tbody").sortable(); 
     }); 
     </script> 

я замечаю от Intellisense есть свойство «sortables» и «род», что он находит из файла пользовательского интерфейса JQuery, но не «сортировка».

Таким образом, ссылка кажется прекрасной, и это, безусловно, последний JQuery UI-код (я проверил это, получив последний файл), поэтому я немного озадачен этим.

+1

Я бы использовал панель инструментов Fiddler или IE dev, чтобы точно убедиться, что загружен файл сценария jquery ui. Не полагайтесь на VS intellisense. Вот jsfiddle с вашим точным кодом, который отлично работает. http://jsfiddle.net/vR9UW/5/ (с использованием jquery ui 1.10.2). Должно быть что-то еще происходит. – BNL

+0

Спасибо @BNL, я вроде забыл, что существуют инструменты разработчика! Инструменты разработчика Chrome, казалось, предоставляли намного больше деталей, чем Internet Explorer, поэтому я использовал это, чтобы точно определить, что происходит. –

ответ

1

В _Layout.cshtml, похоже, что в какой-то момент я вручную ссылался на сценарии пользовательского интерфейса JQuery и JQuery, забывая, что скрипты уже были отображены в виде пакетов, например.

@Scripts.Render("~/bundles/jquery") 

я правильно ссылки правильных сценариев, но потому, что они были загружены снова, я думаю, что они разрушали первые экземпляры файлов, в том числе кода JQuery UI, который опирается на файл JQuery загружается.

Я также не понял, что по умолчанию приложения ASP.NET MVC 4 не отображают структуру интерфейса JQuery, хотя файлы существуют в проекте, а набор сценариев создается в файле BundleConfig.cs ,

Поэтому, чтобы исправить мои проблемы, я удалил все ссылки вручную, так что только пучки были визуализируются, и добавил следующую строку, чтобы сделать код JQuery UI в голове моего _Layout.cshtml файла:

@Scripts.Render("~/bundles/jqueryui"); 

Способ работы с пакетами заключается в том, что файл Global.asax вызывает метод BendleConfig.cs, который создает новые пакеты сценариев, путем поиска соответствующих файлов JavaScript в папке «Скрипты» и где угодно иначе вы скажете это посмотреть.

Затем, чтобы загрузить файлы сценариев из HTML, вы должны сделать их с помощью @ Script.Render() и указать имя набора сценариев в качестве параметра (например, «~/bundles/jqueryui»).

Чтобы отобразить все сценарии на каждой странице веб-сайта, вы можете добавить это в файл _Layout.cshtml, который применяется к каждой странице.