2013-05-02 4 views
3

Chrome on Rails on Localhost. Вот обрезанная версия страницы:Использование плагина JQuery дает ошибку «undefined»

<!DOCTYPE html> 
<head> 
    <link href='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css' rel='stylesheet'> 
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script> 
    <script src='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.js' type='text/javascript'></script> 
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js' type='text/javascript'></script> 
    <meta content="authenticity_token" name="csrf-param" /> 
    <meta content="blahblah=" name="csrf-token" /> 
    <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
    <script src="/assets/application.js?body=1" type="text/javascript"></script> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1.0"> 
</head> 
<body data-action='index' data-controller='application'> 
</body> 

В консоли Chrome (и в сценариях дальше вниз), $.cookie неопределен и $.cookie("a", "b") выдает ошибку.

Я пробовал несколько других CDN, но тот же вопрос.

Редактировать: Я пытаюсь разобраться в консоли Chrome Javascript, которая (я полагаю) работает после загрузки страницы. Я могу проверить вкладку «Ресурсы» и увидеть, что плагин загружен без проблем. Если я перестрою, чтобы связать плагин до JQuery, я получаю ожидаемые ошибки.

+1

Убедитесь, что вы делаете это после того, как был загружен JavaScript (документ готов): http://jsfiddle.net/cq9m8/ – pickypg

+1

Вы используете 'HTTP:// localhost' или 'файл: // localhost'? Так как ваши URL-адреса не имеют префикса «http:», они наследуют протокол, используемый для содержащей страницы. – Barmar

+1

Предоставьте фрагмент кода/блок, содержащий $ .cookie –

ответ

1

Я проверил файлы javascript, обслуживаемые моим приложением через вкладку «Ресурсы», и обнаружил, что мой application.js все еще содержал JQuery, поэтому, по-видимому, он переопределял JQuery без Coookie, когда файл был загружен.

Это произошло потому, что я переключился с использования драгоценных камней, чтобы загрузить JQuery для использования внешнего CDN, но не перекомпилировать (или удалить) мои активы.

решаемые путем удаления скомпилированных активов из public/assets

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