2017-03-16 11 views
1

現在、jQueryの問題が発生していますが、これまでに何時間もかかることがありましたが、何が間違っているのか分かりません。 短いストーリー - 私のコードは、Play Frameworkで書かれたメモリゲームの一部です。jQuery:カスタムイベントが実行されない

jQueryのファイル(簡体字):

$(document).ready(function() { 
    $(".card-grid").on("myEvent", '.card', function (event) { 
     $(".card-grid").flip({ 
      trigger: 'click' 
     }); 
    }); 
    $("#triggerButton").click(function() { 
     $(".card-grid").trigger("myEvent"); 
    }); 
}); 

説明:メモリ "カードは、" 他の(作業)jQueryのコードを使用して初期ローディング後にページにロードされます。 1つの.card divがそれぞれ1つの.card-grid divにロードされます。 jQuery-flipプラグインを動作させるためにflipメソッドを実行する必要があります。 jQueryのバージョンは2.1.4です(フリップは最新のバージョンでは動作しません)。

最初の方法でmyEventをたとえばclickに置き換えると、カードの1つをクリックするだけで機能が正常に動作します。

私は別の関数を作成する場合は、

$(".test").on("myEvent", function (events) { 
    $(this).text("Testtext").show(); 
}); 

を言うと、私のボタンのターゲットを変更することができます、テキストが.TESTオブジェクトの内部だけで罰金を示しています。

誰かが何が間違っているか教えていただけたら本当に感謝しています。

+0

伝播に問題がありますか? '$(" card-grid .card ")。trigger(" myEvent ");'あなたの2番目のメソッドでは? – Sam0

+0

ありがとう、働いた!しかし、今あなたは私に説明をしています。最初のメソッドで宣言した1つのリスナーにイベントを「送信する」必要があると思いましたか? – lenn121

+0

下に再フォーマットされました... – Sam0

答えて

0

$(".card-grid").on("myEvent", '.card', funct...は、.card-gridの子要素である.cardと呼ばれるすべてのdivをターゲットにしています。

したがって、$(".card-grid .card").trigger("myEvent");は、$("#triggerButton").click...機能のより良いターゲットになります。

関連する問題