你应该避免哪些JQuery糟糕/最糟糕的做法,写作或者应该避免的事情?
答案 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的。