2011-01-18 10 views

risposta

11

Risponderò alla domanda in più parti.

In JavaScript (non solo jQuery, ma tutto JavaScript) la parola chiave del documento è un handle sull'oggetto che contiene HTMLDocument. Si potrebbe utilizzare questo handle nei seguenti scenari ...

// Get the current web address 
alert(document.location.href); 

Quando si passa il documento a jQuery, si analizza il documento in un oggetto jQuery.

Quando si passa il selettore "html" a jQuery, utilizza questa stringa per trovare tutti gli elementi nel modello di oggetto documento che corrispondono al selettore (in tutti i casi, ci sarà un elemento html).

In realtà, non si noterà una differenza di comportamento tra questi:

$(document).click(function() { alert('blah'); }); 
$('html').click(function() { alert('blah'); }); 
$('body').click(function() { alert('blah'); }); 

Ma la differenza tecnica è che il documento è un oggetto e 'html' è una stringa che viene utilizzato per cercare un elemento. Sia l'oggetto che gli elementi corrispondenti vengono convertiti in oggetti jQuery.

Come tutti aggiungono un gestore di eventi click alla parte "visibile" della pagina, che è l'unica parte della pagina che un utente può realisticamente fare clic su.

+0

bella spiegazione – kobe

+0

Grazie molto informativo :) – Elgoog

+0

Grazie - sempre felice di aiutare :) – Fenton

0

cercare di mettere fuori l'innerHTML di entrambi, che cosa è il risultato? mi sa (ma han't testato) che

  • document è davvero il documento completo, compreso <html> e tutti gli elementi in essa
  • html riferimenti <html> -tag, quindi ci sarà solo il <head> e <body> in l'output, non il <html> sé -tag

ma: per il codice (l'aggiunta di un click-handler) non ci sarebbe alcuna differenza, perché facendo clic nel documento sarà sempre un clic sul <html> (purché il sito sia valido e ha un <html> -tag)

0

Selezionano la stessa cosa. L'unica differenza è come lo trova il motore sfrigolante di jQuery. Il primo caso è un caso speciale nella funzione jQuery init, il secondo con getElementsByTagName

Problemi correlati