'effect' отлично работает в jsfiddle, но не в живом коде (у [object Object] нет метода 'effect') - PullRequest
7 голосов
/ 14 ноября 2011

Связано, но не исправлено: Проблема jQuery - # <объект> не имеет метода

Я получаю сообщение об ошибке Object [object Object] has no method 'effect', когда пытаюсь использовать функцию effect в jquery (doc http://docs.jquery.com/UI/Effects/Highlight).. В JSFiddle работает нормально, но выдает ошибку при запуске сайта в Chrome или IE. . Div показывается, но вызов эффекта выдает ошибку.

Живая версия может быть найдена здесь: http://jsfiddle.net/jcollum/HK625/

Html

<a id=showHowThisWorks >How does this all work?</a>    
<div id="howThisWorks" style="display: none; ">    
  <p>It works fine</p>
</div>

А это кофейный текст:

$(document).ready ->
  $('#howThisWorks').hide()

  $('#showHowThisWorks').click ->
    $div = $('#howThisWorks')
    $div.toggle();
    $div.effect("highlight", {}, 10000)
    return

  return

Что выглядит так в JS:

 $(document).ready(function() {
    $('#howThisWorks').hide();
    $('#showHowThisWorks').click(function() {
      var $div;
      $div = $('#howThisWorks');
      $div.toggle();
      $div.effect("highlight", {}, 6000);
    });
  });

Я попытался сделать $ div селектором jquery в этой строке вместо использования переменной. Я попытался обернуть $ div в $ (). Я все еще получаю сообщение об ошибке на реальной версии страницы. Тот же результат в Chrome и IE9. Очевидно, я что-то упускаю из-за того, как ведут себя объекты jquery.

1 Ответ

10 голосов
/ 14 ноября 2011

Я считаю, что пользовательский интерфейс jQuery не развертывается локально: проверьте в Firebug / Chrome и т. Д., Чтобы проверить.

.toggle() является частью ядра jQuery, .effect() является частью пользовательского интерфейса jQuery: чтобы это не работало, пользовательский интерфейс jQuery не должен присутствовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...