1

まず第一に、コードは機能していますが、私の意見では理想的ではありません。

Javascript の無名関数が好きです。onclickしたがって、ハンドラーを登録するときに無名関数を使用できます。

$(function()){
  $(".foo").on("click", function() {
     ..
  });
}

しかし、関数も呼び出す必要があることに気付くことがありますonReady。したがって、コードを次のように変換できます。

$(function()){

  function bar() { .. }

  $(".foo").on("click", bar);

  bar(); //'onload'
}

しかし、それは多くの仕事です!(怠惰はプログラマーの良い特徴です)。非匿名関数を作成したり、onclick 登録を変更したりする必要があります。匿名関数を保持することは可能ですか?

理想的な状況では、次のようなものがあります。

$(function()){
  $(".foo").on("click onDomLoaded", function() {
     ..
  });
}

しかし、それは機能していません。

(私が見る唯一のオプションは「on」機能を拡張することですが、それは醜いようです)

4

3 に答える 3

0

@tymejV のアイデアは近いものでしたが、望ましくない副作用が発生する可能性がありました。たとえば、既に制限されているクリック イベントです。幸いなことに、問題を解決する jQueryの「名前空間イベント」があります。

$(function()){
  $(".foo").on("click load.somenamespace", function() {
     ..
  }).trigger("load.somenamespace");
}
于 2014-09-04T20:35:58.967 に答える
0

これを試してみてください。

$(function()){


  $(".foo").on("click", function(){ bar();});

  bar(); //'onload'
}

function bar() { .. }
于 2013-11-01T12:31:14.843 に答える
0

.click()ロード時にトリガーするために末尾を追加できます。

$(".foo").on("click", function() {
 ..
}).click(); //trigger on load
于 2013-11-01T00:24:51.983 に答える