私のWebページでは、すべてブラウザのlocation.hash
と対話する複数の独立したプラグインがあります。 (私は自分の仕事を分離し続けるコードのビットを持っているが、それはこの質問には無関係です。)例えば、私が持っている:ラストインコールバックをサポートするデザインパターン(ハッシュ変更の処理など)
// file1.js
$(window).bind('hashchange', function(){ ... });
// file2.js
$(window).bind('hashchange', function(){ ... });
必要に応じて、上記の作品ページのロード時後のハッシュ変化。しかし、私はこのコードを最初にロードするどのハッシュでも処理する必要があります。このコードを書くと:
// file1.js
$(window).bind('hashchange', function(){ ... }).trigger('hashchange');
// file2.js
$(window).bind('hashchange', function(){ ... }).trigger('hashchange');
...最初のコードセットが2回実行されます。望ましくない
hashchange
イベントを1回だけトリガするのに適したパターンは、すべてのイベントハンドラを配置した後です。
合理的な提案ですので、+1してください。しかし、私は組み込み時にそれ自身で動作するプラグインを書くのが好きです。この回答には、プラグインのコンシューマーによる少し余分な作業が必要です。 – Phrogz