Я бы просто поместил его в файл .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, чтобы сохранить нагрузку на страницу меньше.
Вы также можете посмотреть на такие вещи, как загрузчик YUI, который позволяет вам делать гораздо более сложные вещи, такие как загрузка по требованию битов функциональности js.
Вы можете использовать делегирование событий для предоставления различных функций в зависимости от контекста.
По сути, он работает, подключая прослушиватель событий к элементу контейнера, который фиксирует щелчки на дочерних элементах.Затем вы можете полностью отказаться от отдельных прослушивателей событий, а также взглянуть на подсказки родителей.скажем:
<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-library
Лично я использую YUI3 http://developer.yahoo.com/yui/3/examples/node/node-evt-delegation.html
, поскольку это дает мнеСелекторы стиля CSS3 и до сих пор довольно легко.