Javascript JQuery—将GUI对象连接到事件的最佳方式?
自从几年前JQuery问世以来,我一直在所有客户端脚本中使用它。最初,我使用“$()语法来抓取和操作对象。对我来说,这是“旧skool”范例,它将向上按钮事件显式连接到函数:Javascript JQuery—将GUI对象连接到事件的最佳方式?,javascript,jquery,html,Javascript,Jquery,Html,自从几年前JQuery问世以来,我一直在所有客户端脚本中使用它。最初,我使用“$()语法来抓取和操作对象。对我来说,这是“旧skool”范例,它将向上按钮事件显式连接到函数: <button onClick='myFunction(this);' ... /> 我的一些同事更喜欢通过JQuery将脚本附加到事件: $(document).ready( $("#myButton").click( function(event){ al
<button onClick='myFunction(this);' ... />
我的一些同事更喜欢通过JQuery将脚本附加到事件:
$(document).ready(
$("#myButton").click(
function(event){
alert('this is the newer JQuery way of doing things');
}
);
);
起初,我发现过于夸张的JQuery语法依赖于匿名函数等,很难阅读,但我的眼睛和大脑已经适应了,所以我现在对这两种方法都很满意。不过,我希望我们的代码库保持一致。有人对哪种方法“更好”有什么看法吗 jQuery方式加强了内容和功能之间的分离,这在我看来是一件好事。它减少了内容/标记中的“噪音”。它还使程序员能够专注于脚本编写,而“marker-upper”则专注于HTML 顺便说一句,如果您不想:
function myFunction(obj){
alert('this is a compromise!')
}
$(function() {
$("#myButton").click(myFunction);
});
您拥有的jQuery版本也可以小得多:
$(function() {
$("#myButton").click(function(){
alert('this is the newer JQuery way of doing things');
});
});
我会使用这个或任何其他不引人注目的方法(不是内联处理程序),总体上问题比较少,维护也会容易得多。记住,使用此路由,页面中不能有JavaScript,它可以由客户端加载并缓存一次,这也意味着页面加载速度更快
还有很多事情是不能内联(或跨浏览器)正确完成的,例如非常有用的和(因此在输入子对象时不会触发)事件仅在IE中内联可用。我认为第二种方法更简洁,原因有几个:
- 它确实允许您将内容和行为分开,也就是说,您可以先定义内容的结构,然后再考虑具体的行为。。。如果您的团队涉及不同的技术配置文件(有人负责原始HTML,有人是Javascript专家……),这一点尤其有用
- 这确实有助于维护,如您所知,如果出现问题,可以在哪里查找可能存在错误的javascript,而不必查看整个HTML
- 当您的HTML实际上是动态的(在服务器端,即PHP或ASP.NET上生成)时,在您生成的HTML中包含这些客户端元素实际上是非常痛苦的。。。这是一个非常常见的错误源,因此最好不要使用javascript
- jQuery版本更好,因为它将行为(JavaScript)与结构(HTML)分离
如果括号太多,可以使用编译成JavaScript的语言,如CoffeeScript(http://jashkenas.github.com/coffee-script/):
“你能有太多的jQuery吗?”-不哈哈,
你能有太多的JQuery吗?
这是什么类型的标题:)你能澄清一下上面的代码片段在做什么吗?我还没有看到$(函数)()。。。@5arx之前的语法-它是$(document).ready(function(){
$(function() {
$("#myButton").click(function(){
alert('this is the newer JQuery way of doing things');
});
});
$ ->
$("#myButton").click ->
alert 'this is the newer JQuery way of doing things'