2012-06-10 6 views
5

次のように構造を決定する方法が不明です。これは正常に動作します:このjqueryをコーヒースクリプトに変換しますか?

$('.hover li').on 'hover', (ev) -> 
    $(this).addClass('active') 

私は私が代わりに「addClass」の「トグル」を使用することができます知っているが、他の理由のために私は渡された関数をハンドラを実行する必要があります。だから私はこれを試した:

$('.element').on 'hover', (ev) 
    -> $(this).addClass('active'), 
    -> $(this).removeClass('active') 

これはエラーを返します - '予期しない'。他のバリエーションも試しましたが、オンラインで見つかったほとんどの例では.on 'hover' (ev) ->という形式は使用されていません。

答えて

8

一度に両方のイベントハンドラを添付したい場合は、このためにon()を使用することはできません。

+1

を利用:あなたはhover()を使用する必要が

ホバーオン、非アクティブなどに切り替えることができます。 –

+0

ここに 'ev'は何ですか? – emaillenin

+0

@emailleninイベントオブジェクトは、http://api.jquery.com/hover/を参照してください。 – Niko

-4
$('.element').on 'hover', (ev) -> 
    $(this).addClass('active').removeClass('active') 

する必要があります。私はそれを取得しませんが。クラスを追加してをアクティブにしてから削除してください。それにもかかわらず、上記のコードは少なくとも有効なcoffeescriptです。

$('.element').toggle 'hover', 
    (ev) -> 
     $(this).addClass('active') 
     # Do other stuff... 
    (ev) -> 
     $(this).removeClass('active') 
     # Do other stuff... 
1

jQueryのトグル機能は、私はあなたが後にしているものだと思うおり、二つの機能を取ります。

$('.element').hover(
    (ev) -> $(this).addClass 'active' 
    (ev) -> $(this).removeClass 'active' 
) 

またはより良い、私はもともとtoggleClassを使用しましたが、私は、ページの読み込みにこの要素の上に推移した場合、要素は開始するtoggleClass()

$('.element').hover (ev) -> $(this).toggleClass 'active' 
関連する問題