JQuery:放置html标记处理程序的最佳位置

时间:2010-09-22 08:25:34

标签: jquery html javascript-events

您个人更喜欢将html标记处理程序与JQuery驱动的Html页面放在一起,以及为什么:html标记元素或document.ready函数?

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

...

function foo() { 
...
}

<a id="mytag" />

...

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

提前谢谢!

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分: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)。

答案 3 :(得分:1)

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

相关问题