2011-11-13 6 views
7

関連ではなく、修正:jQuery issue - #<an Object> has no method「効果」jsfiddleで正常に動作しますが、ライブコードで([オブジェクトのオブジェクト]何の方法「効果」を持っていない)ではない

私がしようとすると、私はエラーObject [object Object] has no method 'effect'を取得していますjqueryのeffect関数を使用してください(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> 

そして、これの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オブジェクトの振る舞いについて何か不足しています。

+0

'toggle()'は機能しますか?言い換えれば、 'effect()'呼び出しを削除すると動作しますか? –

+0

@Daveはい、トグルがうまく動作しています – jcollum

+0

私は 'jQuery.fx.off'を見逃してしまったので、それをfalseに設定しようとしました。 '$ div.fadeToggle(400)'を使って私がしたいことはしましたが、 '効果'がうまくいかない理由はまだ分かりません。 – jcollum

答えて

10

jQuery UIがローカルにデプロイされていないと考えています。Firebug/Chromeなどを確認して確認してください。

.toggle()はcore jQueryの一部です。.effect()はjQuery UIの一部です。これが機能しないようにするため、jQuery UIは存在してはいけません。

+1

+1。すべてのjQueryオブジェクトには同じメソッドが付属しているので、jcollumエラーの唯一の説明は、プラグインがjQueryの 'effect'メソッドを定義していないことです。 –

+0

そうだった。どのライブラリにあるのかはっきりしていません... jsfiddleのjquery ui(デフォルトでは含まれています)への参照を削除しても、コードは引き続きエラーなしで動作します。 )。ブリーチ。 – jcollum

+0

助けてくれてありがとう。 – jcollum

関連する問題