.js ファイルに入れるだけです。
mysite_common.js - サイト全体で共通のユーティリティと関数
mysite_page_a.js - ページ a の固有の機能
mysite_page_b.js - ページ b の独自機能
ページbにはb.jsを含め、ページaにはa.jsを含めます
次に、それぞれの unique.js で、機能を ondomready などでラップできます。
PHP とは別にしておけば、あとで煩わしくなることはほとんどありません。また、js のキャッシュを利用して、ページの読み込みをスリムに保つことができることも意味します。
また、js 機能の一部をオンデマンドでロードするなど、はるかに複雑なことを実行できる YUI ローダーなども検討できます。
イベント委任を使用して、コンテキストに応じてさまざまな機能を提供できます。
基本的には、子要素のクリックをキャプチャするコンテナ要素にイベント リスナーをアタッチすることで機能します。その後、個々のイベント リスナーをまとめて削除したり、親からのヒントを確認したりできます。いう:
<div id='container' class='page_a'>
...
<input name='somename'>
...
</div>
それで
var attachDelegates = function(container){
container.onclick = function(e) {
e = e || window.event;
var t = e.target || e.srcElement;
//Your logic follows
if(t.name === 'somename'){
dosomething(t);
}
if(t.className === 'someclass'){
... something else ...
}
};
とonload = function(){attachDelegates('container');};
attachDelegates 関数はページごとに異なる可能性があります。または、モノリシックなものと単純なヒントをコンテナーに添付するか、添付するクラスを選択することもできます。
これらは、より一貫した説明と例です:
http://cherny.com/webdev/70/javascript-event-delegation-and-event-hanlders
http://blog.andyhume.net/event-delegation-without-javascript-図書館
個人的にはYUI3
http://developer.yahoo.com/yui/3/examples/node/node-evt-delegation.htmlを使用しています
それは私にCSS3スタイルセレクターを与えてくれるので、これまでのところかなり手間がかかりません.