21

あなたが見た、書いた、または避けるべき JQuery の悪い/最悪のプラクティスは何ですか?

4

4 に答える 4

33

避けるべきことは、すべての行で「使いやすい」セレクターをもう一度使用することです。これは、セレクターの 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");
于 2010-01-15T07:47:37.500 に答える
17

私がよく目にするのは次の2つです。

まず、クリック イベントでは、次のidように にアクセスします。

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

これにより、DOM ノードの周りに新しい jQuery オブジェクト作成され、関数が呼び出されます。以下が正しい方法です。

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

注: も表示されますが$(this).attr('href')、これは、jQuery がブラウザー間で正規化する方法により正しいものです。

2 つ目は、DOM ノード以外のものをscopejQuery 呼び出しのパラメーターに渡します。

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

これを行うことによる速度の向上はまったくありません。速度の向上が見られるのは、DOM 要素が既にある場合です。

$('div').click(function(){
   $('img', this).doSomething(); // This is good
});
于 2010-01-15T07:48:39.060 に答える
5

James Padolsey は、jQuery コードの匂いに関する優れた記事を書いています。読むことをお勧めします。

于 2010-01-15T07:51:46.030 に答える
2

まだ古いドキュメントの準備ができている関数を使用しています:

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

非常に一般的な代わりに:

$(function(){ });

それは本当に悪いことではありませんが、人々が新しい API に慣れていないことを示しています。

于 2010-01-15T07:47:48.220 に答える