例との違い:はJavaScript:いただきました「文書」と「HTML」
$(document).click(function() { blah });
// and
$('html').click(function() { blah });
例との違い:はJavaScript:いただきました「文書」と「HTML」
$(document).click(function() { blah });
// and
$('html').click(function() { blah });
私はいくつかの部分で質問に答えます。
JavaScriptでは、documentキーワードはHTMLDocumentを含むオブジェクトのハンドルです(jQueryではなくすべてのJavaScript)。あなたはjQueryのに文書を渡すと、それはjQueryオブジェクトに文書を解析し...次のシナリオで
// Get the current web address
alert(document.location.href);
をこのハンドルを使用する場合があります。
"html"セレクタをjQueryに渡すと、この文字列を使用してセレクタに一致するドキュメントオブジェクトモデル内の要素が検索されます(すべての場合、html要素が1つあります)。
現実には、あなたがこれらの間の動作の違い気付くことはありません。
$(document).click(function() { alert('blah'); });
$('html').click(function() { alert('blah'); });
$('body').click(function() { alert('blah'); });
をしかし、技術的な違いは、その文書が対象と「HTML」であるがために検索するために使用される文字列です。素子。オブジェクトと一致する要素の両方がjQueryオブジェクトに変換されます。
これらはすべて、ページの「表示可能な」部分にクリックイベントハンドラを追加するため、ユーザーが現実にクリックできるページの唯一の部分です。
は、両方のinnerHTMLを、いただきました結果を出してみてください?
document
は<html>
とその中のすべての要素html
を含む完全なドキュメントは、<html>
-tagを参照し、これだけ<head>
と<body>
であるだろう本当にあることを私は数える(しかしhan'tが試験します)あなたの出力ではなく、<html>
しかし:ドキュメントにクリックすると、常に<html>
上のクリックになりますので、あなたのコード(クリックハンドラを追加する)ために、何の違いもないでしょう(あなたがサイトが有効で、が、<html>
タグを持っている限り)
これらは同じものを選択します。唯一の違いは、jQueryのシズルエンジンがどのようにそれを見つけるかです。最初のケースはjQueryのinit関数の特別なケースで、getElementsByTagNameを使用する2番目のケースは上記のscneraioで
...私はどちらも同じだと思います。 – kobe