JQueryベストプラクティスおよびよくあるエラー
1965 ワード
1 JQueryのreadyプロセッサを使用
コードがDOMを操作している場合は、DOMロードが完了してからコードを実行する必要があります.以下のような第1の書き方をお勧めします.第2の書き方はJQuery 3です.xではもうお勧めしません.
2 noConflict()で競合を回避し、別名を定義する
jQueryコードが別名として$記号を使用する他のクラスライブラリと競合している場合は、noConflict()メソッドを使用して別名を定義します.
3キャッシュJQueryオブジェクトおよびチェーンコール
jQueryセレクタ関数$()を呼び出すコストが高く、繰り返し呼び出す効率が低い.
3.1誤った方式
3.2 JQueryオブジェクトのキャッシュ
3.3チェーンコール
4 JQuery変数命名習慣
jQueryパッケージ変数は、通常、標準JavaScriptオブジェクトと区別するために$で始まります.
5 DOM原生の属性と関数を利用する
jQueryのターゲットの1つはDOMを抽象化することであるが,DOM原生を利用した属性と関数効率はより高い.DOMを知らずにjQueryを学ぶ人の中で最もよく犯すエラーの一つは、jQueryアクセス要素の属性を利用することです.
5.1冗長かつ遅い
5.2簡潔かつ迅速
6要素の共通構文の作成
6.1要素共通構文の作成
6.2文字列接続方式
上記の2つの方式は文法が正しく、機能が同じであるが、第1の方式がより良い.第2の文字列の接合方法は可読性が悪く、脆弱である.
1つ目の方法は、特殊文字の入力が非常に強力です.しかし、第2の方法の効率は第1の方法よりも優れている.
コードがDOMを操作している場合は、DOMロードが完了してからコードを実行する必要があります.以下のような第1の書き方をお勧めします.第2の書き方はJQuery 3です.xではもうお勧めしません.
$(function () {
/* */
});
//
$(document).ready(function () {
/* */
});
2 noConflict()で競合を回避し、別名を定義する
jQueryコードが別名として$記号を使用する他のクラスライブラリと競合している場合は、noConflict()メソッドを使用して別名を定義します.
$jq = jQuery.noConflict();
$jq(function () {
/* */
}
3キャッシュJQueryオブジェクトおよびチェーンコール
jQueryセレクタ関数$()を呼び出すコストが高く、繰り返し呼び出す効率が低い.
3.1誤った方式
//
$('#list li').addClass('strong');
$('#list li').css('color', 'red');
3.2 JQueryオブジェクトのキャッシュ
//
var $li = $('#list li');
$li.addClass('strong');
$li.css('color', 'red');
3.3チェーンコール
//
$('#list li').addClass('strong').css('color', 'red');
4 JQuery変数命名習慣
jQueryパッケージ変数は、通常、標準JavaScriptオブジェクトと区別するために$で始まります.
//
var $li = $('#list li');
5 DOM原生の属性と関数を利用する
jQueryのターゲットの1つはDOMを抽象化することであるが,DOM原生を利用した属性と関数効率はより高い.DOMを知らずにjQueryを学ぶ人の中で最もよく犯すエラーの一つは、jQueryアクセス要素の属性を利用することです.
5.1冗長かつ遅い
$('img').click(function () {
$(this).attr('src');
});
5.2簡潔かつ迅速
$('img').click(function () {
this.src;
});
6要素の共通構文の作成
6.1要素共通構文の作成
$('', {
text: p_text,
"class": 'red',
title: p_title,
id: p_id
}).appendTo("#myDiv");
6.2文字列接続方式
$(''+p_text+'
').appendTo(#myDiv);
上記の2つの方式は文法が正しく、機能が同じであるが、第1の方式がより良い.第2の文字列の接合方法は可読性が悪く、脆弱である.
1つ目の方法は、特殊文字の入力が非常に強力です.しかし、第2の方法の効率は第1の方法よりも優れている.