Каковы очевидные ошибки/худшие практики JQuery, написанные или вещи, следует избегать?
JQuery Плохая практика
Ответ 1
Вам следует избегать использования "простых в использовании" селекторов в каждой строке еще раз, потому что реализация селекторов 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");
Ответ 2
Есть два, которые я вижу много:
Первый, в событии клика id
открывается следующим образом:
$("a").click(function(e){
var id = $(this).attr('id');
});
Это создает новый объект jQuery вокруг DOM node и вызывает функцию. Правильно:
$("a").click(function(e){
var id = this.id;
});
Примечание. Вы также увидите $(this).attr('href')
, но это правильно из-за того, как jQuery нормализует его в браузерах.
второй передает что-либо, кроме DOM node, в параметр scope
вызова jQuery:
$(".child", $(".parent")).doSomething();
// or
$(".child", ".parent").doSomething();
Никакой скорости не получается, делая это. Когда вы видите увеличение скорости, это когда у вас уже есть элемент DOM:
$('div').click(function(){
$('img', this).doSomething(); // This is good
});
Ответ 3
Джеймс Падолси написал отличную статью о запахах кода jQuery. Я рекомендую прочитать его.
Ответ 4
По-прежнему используется функция готовности старого документа:
$("document").ready(function(){ });
Вместо очень распространенного:
$(function(){ });
Это не очень плохо, но я показываю, что люди не встают с новыми api.