14

このコードが機能しない理由を誰か教えてもらえますか?

$('body').on('test', function() {
  alert('test');
});

$('body').trigger('test');

jquery-1.7.2.minを使用しています。エラーは発生しません。何も起こりません。

コードをインラインスクリプト内に入れてみましたが$(document).ready()、まだ何もありません。私は両方on()とも試してみましたがbind()、どちらの結果もありませんでした。同じ構文を示す例をあちこちで見ますが、これと何が違うのでしょうか?

4

2 に答える 2

8

問題はDOMの準備ができていることにあるようです。インライン スクリプト内にコードを配置しても機能しません。の中に配置する$(document).ready()と、匿名関数で機能しますが、何らかの理由で '( )' を使用した関数呼び出しでは機能しません..このコードは機能しました

$(document).ready(start);
function start(){
$('body').on('test', function() {
  alert('test');
});

$('body').trigger('test');
}

しかし、これはそうではありませんでした... *関数呼び出しの括弧に注意してください。

$(document).ready(start());
function start(){
$('body').on('test', function() {
  alert('test');
});

$('body').trigger('test');
}

正確な例はjsfiddleでは両方の方法で機能しますが、何らかの理由で私のサーバーでは一方の方法しか機能しません。理由について別の質問が生じると思いますが、少なくともこのコードが実際に機能することがわかります。私のものには奇妙な異常があります:/

于 2012-06-04T17:54:59.597 に答える