Jquery糟糕的做法

时间:2010-01-15 07:39:07

标签: javascript jquery design-patterns code-standards

你应该避免哪些JQuery糟糕/最糟糕的做法,写作或者应该避免的事情?

4 个答案:

答案 0 :(得分:31)

你应该避免的事情是再次在每一行使用“易于使用”的选择器,因为选择器的JavaScript实现不是 有效。当然,jQUery的人正在优化它,但我认为你应该尽可能少地使用它。

所以,这是一种不好的做法。

$("li ul span").show();
$("li ul span").toggleClass("bubu");

链接很好

$("li ul span").show().toggleClass("bubu");

记住局部变量中的内容也不错:

var allspans = $("li ul span");
allspans.show();
allspans.toggleClass("bubu");

答案 1 :(得分:17)

我看到有两个很多:

首先,在点击事件中,id的访问方式如下:

$("a").click(function(e){
   var id = $(this).attr('id');
});

在DOM节点周围创建一个 new jQuery对象,调用一个函数。以下是正确的方法:

$("a").click(function(e){
   var id = this.id;
});

注意:您还会看到$(this).attr('href'),但这是正确的,因为jQuery在浏览器中对其进行规范化的方式。

第二个将除DOM节点之外的任何内容传递到jQuery调用的scope参数中:

$(".child", $(".parent")).doSomething();
// or
$(".child", ".parent").doSomething();

这样做完全没有速度增益。你看到速度增加的地方,就是你已经拥有DOM元素:

$('div').click(function(){
   $('img', this).doSomething(); // This is good
});

答案 2 :(得分:5)

James Padolsey撰​​写了关于jQuery代码气味的an excellent article。我建议阅读它。

答案 3 :(得分:2)

仍在使用旧文档就绪功能:

$("document").ready(function(){ });

而非常见的:

$(function(){ });

这并不是很糟糕,但我向人们展示了没有得到新api的。

相关问题