2013-06-19 7 views
9

jqueryの準備関数でbodyにカスタムイベントハンドラをアタッチします。直ちに、私はカスタムイベントを正常にトリガーしています。jquery - カスタムイベントをトリガーする

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    } 
    $("body").trigger("test"); 
} 

ただし、コンソールでトリガーしても何も起こりません。どうして?

+0

構文エラー... – Musa

+0

.on - 選択した要素に1つ以上のイベントのイベントハンドラ関数をアタッチします。ここのイベントは何ですか? – zod

+2

@dementic編集中のコードを変更しないでください。 – Musa

答えて

5

まずあなたは第二に、あなたが$(function() {});フォーム閉鎖、あなたのように、コンソールからイベントをトリガーすることはできません

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    }); < ---- Missing this 
    $("body").trigger("test"); 
}); 

構文エラーを持っているを内部のメソッドにアクセスできない

期待どおりに動作するためには、スクリプトファイルにデバッグポイントを置き、イベントをトリガーしてみてください。これは、イベントが有効範囲にあるときに機能します。

+3

できます。コンソール上で '$(" body ")。trigger(" test ");'を実行すると動作します。なぜそれは動作しませんでしたか? '$'はグローバル変数です。 –

+0

構文エラーについて私のお詫び申し上げます。イベントリスナーが閉鎖の外で起こっているイベントを聞いていないことを知らなかった。ありがとう! – JJK

4

コードが正しくフォーマットされていないようです。デバッグコンソールで確認してください。

あなたがこの試すことができます:

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    }); 
    $("body").trigger("test"); 
} 
関連する問題