'effect'在jsfiddle中运行正常但在实时代码中没有([object Object]没有方法'effect')

时间:2011-11-13 20:09:50

标签: jquery coffeescript

相关,但不是修复:jQuery issue - #<an Object> has no method

当我尝试在jquery(doc http://docs.jquery.com/UI/Effects/Highlight)中使用Object [object Object] has no method 'effect'函数时,我收到错误effect。它在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>

这个coffeescript:

$(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 个答案:

答案 0 :(得分:10)

我相信jQuery UI没有在本地部署:请查看Firebug / Chrome等进行验证。

.toggle()是核心jQuery的一部分,.effect()是jQuery UI的一部分:为了使其不起作用,jQuery UI必须不存在。