Подтвердить что ты не робот

JQuery Плохая практика

Каковы очевидные ошибки/худшие практики JQuery, написанные или вещи, следует избегать?

4b9b3361

Ответ 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.