我个人的偏好是在外部 js 文件中使用 jQuery,因此 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(或其他知名库)完成这项艰巨工作的巨大好处是(很大程度上)考虑到了跨浏览器支持,这让生活变得更加轻松