Мое личное предпочтение - использовать jQuery во внешних js-файлах, чтобы js полностью отделился от html. Javascript должен быть ненавязчивым, так что встроенный (т.е. первый пример), на мой взгляд, не самый лучший выбор. При просмотре html единственным признаком того, что вы используете js, должен быть сценарий, включенный в заголовок.
Примером прикрепления (и обработки) событий может быть что-то вроде этого
var myObject = {
allLinkElements: null,
init: function()
{
// Set all the elements we need
myObject.setElements();
// Set event handlers for elements
myObject.setEventHandlers();
},
clickedLink: function()
{
// Handle the click event
alert('you clicked a link');
},
setElements: function()
{
// Find all <a> tags on the page
myObject.allLinkElements = $('a');
// Find other elements...
},
setEventHandlers: function()
{
// Loop through each link
myObject.allLinkElements.each(function(id)
{
// Assign the handler for the click event
$(this).click(myObject.clickedLink);
});
// Assign handlers for other elements...
}
}
// Wait for the DOM to be ready before initialising
$(document).ready(myObject.init);
Я думаю, что этот подход полезен, если вы хотите, чтобы все ваши js были организованы, так как вы можете использовать конкретные объекты для задач, и все хорошо содержится.
Конечно, огромная выгода от того, что jQuery (или другая хорошо известная библиотека) выполняет тяжелую работу, заключается в том, что кросс-браузерная поддержка (в основном) заботится о том, что делает жизнь намного проще