javascript
  • coffeescript
  • 2017-12-14 9 views 0 likes 
    0

    をそれを焼成した後、私は、次のHTML

    <button id="btn" type="button">Click Me!</button> 
        <div id="outside"> 
        <div id='inside" class="animated"> 
         </div> 
        </div> 
    

    を持っています。それはうまく動作します。

    もう一度クリックすると、最初にinsideがアニメーション表示され、outsideが非表示になります。これを行うには、を聞くために、inside divにイベントリスナーを追加します。初めて正常に動作します。しかし、2回目に私がoutsideを隠そうとすると、リスナーが起動して正しく動作しません。今、イベントリスナーを初めて起動した直後に削除しようとしていますが、動作させることはできません。

    私の最後の試みです。

    ... 
    hideOutside: => 
        @inside.addEventListener 'animationend', @handler(event), no 
    
    handler: (e) => 
    @sheet.removeEventListener @animationEvent, @handler(event), no 
    @outside.classList.remove('is-active') 
    

    私はseen sample on SO similar to mineを持っていますが、私は何が間違っているのか分かりません。

    ありがとうございます(これを削除しないでください)。

    答えて

    1

    この:

    @inside.addEventListener 'animationend', @handler(event), no 
    # ---------------------------------------^^^^^^^^^^^^^^^ 
    

    は、あなたはそれがないと思う何をしません。

    x = @handler(event) 
    @inside.addEventListener 'animationend', x, no 
    

    はそう@handler(event)addEventListener前に呼び出されている:それは実際にそれが言うように同じであるので、それへの参照を渡していない、@handlerを呼びました。

    @inside.addEventListener 'animationend', @handler, no 
    

    と::

    @sheet.removeEventListener @animationEvent, @handler, no 
    
    あなたが機能そう 参照して仕事をしたい

    関連する問題