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

#jquery #ruby-on-rails-3 #jquery-ui

#jquery #ruby-on-rails-3 #jquery-пользовательский интерфейс

Вопрос:

Пытаюсь настроить jQuery и jQuery UI в моем приложении rails 3.1.1

На мой взгляд, у меня

 <a href="#" id="test_link1">Test</a>

<div id="dialog-modal" title="Basic modal dialog" style="display:none;">
<p>Adding the modal overlay screen makes the dialog look more prominent because it dims out the page content.</p>
</div>

<script type="text/javascript">
  $( "#test_link1" ).click(function() {
     ('#dialog-modal').dialog();
  });
  

Это не работает. Когда я проверяю, я получаю

 storages:105TypeError: 'undefined' is not a function (evaluating '('#dialog-modal').show()')
        });
  

В application.js . Файлы загружены

 //= require jquery
//= require jquery_ujs
//= require jquery-ui.min
  

Ответ №1:

Изменить ('#dialog-modal').dialog(); на

$("#dialog-modal").dialog();

Вы забываете jQuery($), поэтому нет объекта jQuery для работы.

Ответ №2:

Вам нужно добавить знак доллара:

 $('#dialog-modal').dialog();
  

Комментарии:

1. должна быть другая ошибка, но вы могли бы попробовать обернуть ее в функцию doc ready $(function(){ // put code here });

2. Я бы очистил кеш и попробовал еще раз. Кроме этого, убедитесь, что файлы js загружаются.

3. Это допустимая скрипка jsfiddle.net/mcgrailm/QLKxX возвращает ту же ошибку

4. У меня это работает в Chrome, ie и ff. в каком браузере вы получаете сообщение об ошибке?

Ответ №3:

Оберните свой код в готовый обработчик:

 $(function(){
  $( "#test_link1" ).click(function() {
     $('#dialog-modal').dialog();
  });
});
  

Комментарии:

1. Все еще забываю $ на ("#dialog-modal").dialog();

2. @SamStriano: обновлено, прежде чем увидеть ваш комментарий 🙂

3. Спасибо, но ошибка <script type="text/javascript"> $(function(){ $( "#test_link1" ).click(function() { $('#dialog-modal').dialog(); }); }); </script> все еще присутствует storages:106TypeError: 'undefined' is not a function (evaluating '$('#dialog-modal').dialog()')

4. @Gaelle: убедитесь, что все скрипты правильно загружены на вашей странице.

5. Это допустимая скрипка jsfiddle.net/mcgrailm/QLKxX тоже не работает, так что проблема где-то в другом месте