2010-09-22 74 views
0

您个人更喜欢将html标记处理程序与使用JQuery驱动的Html页面以及为什么:html标记元素或document.ready函数相关?JQuery:放置html标记处理程序的最佳位置

<a onclick="javascript:foo()" /> 

... 

function foo() { 
... 
} 

<a id="mytag" /> 

... 

$(document).ready(function() { 
    $("#mytag").click(function() { ... }); 
}) 

预先感谢您!

回答

1

$(document).ready以内的处理程序版本更好。 1)代码使用本地而不是全球功能。它很快,您可以访问在$(document).ready函数中声明的局部变量2)您确定在用户点击它之前加载了onclick函数的代码。 3)从设计角度来看更好。

1

第二个,因为它分离内容和逻辑。你不应该混合使用HTML(用于HTML),表示(这就是CSS的用途)和逻辑(这就是JavaScript的用途)。

1

绝对是第二个,当你将这两个部分分开时,维护代码要容易得多。此外,它看起来丑陋;)

1

最佳实践的缘故,可以在.js外部文件中包含的功能

function handleClick() 
{ 
    $(element).click(function(e){}); 
} 

// then call them on DOM ready with $(function(){}), this is an alternative provided by jquery equivalent to $(document).ready() 

$(function(){ handleClick(); }); 

我这样做是为了有功能一个很好的有序列表更易于管理。一个文件,每个文件都有一些功能来处理事件。

那么为什么不内联?与压缩的外部JS文件相比,难以管理,隐藏并且更容易被黑客入侵(通过更容易的黑客攻击,我的意思是没有那么大的麻烦或不便,因为我可以随时用Firebug修改DOM)。