jQuery fait la liste de tous les éléments correspondant au sélecteur donné, puis applique a chacun d'entre eux la fonction load(). Donc si l'élément n'existe pas, la fonction load() n'est pas déclenchée.
Vérifie tout de même (avec firebug, par exemple, pour voir si la requête xhr est déclenchée), mais normalement c'est ça.
[edit] Après vérification du code, Sephi-chan a raison: pour des raisons de performance, jQuery lance d'abord la requête puis applique ensuite le résultats aux objets sélectionnés. Ca ne génerera donc pas d'erreur, mais la requête sera quand même lancée. Code source complet de la fonction:
Vérifie tout de même (avec firebug, par exemple, pour voir si la requête xhr est déclenchée), mais normalement c'est ça.
[edit] Après vérification du code, Sephi-chan a raison: pour des raisons de performance, jQuery lance d'abord la requête puis applique ensuite le résultats aux objets sélectionnés. Ca ne génerera donc pas d'erreur, mais la requête sera quand même lancée. Code source complet de la fonction:
load: function( url, params, callback ) {
if ( typeof url !== "string" )
return this._load( url );
var off = url.indexOf(" ");
if ( off >= 0 ) {
var selector = url.slice(off, url.length);
url = url.slice(0, off);
}
// Default to a GET request
var type = "GET";
// If the second parameter was provided
if ( params )
// If it's a function
if ( jQuery.isFunction( params ) ) {
// We assume that it's the callback
callback = params;
params = null;
// Otherwise, build a param string
} else if( typeof params === "object" ) {
params = jQuery.param( params );
type = "POST";
}
var self = this;
// Request the remote document
jQuery.ajax({
url: url,
type: type,
dataType: "html",
data: params,
complete: function(res, status){
// If successful, inject the HTML into all the matched elements
if ( status == "success" || status == "notmodified" )
// See if a selector was specified
self.html( selector ?
// Create a dummy div to hold the results
jQuery("<div/>")
// inject the contents of the document in, removing the scripts
// to avoid any 'Permission Denied' errors in IE
.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
// Locate the specified elements
.find(selector) :
// If not, just inject the full result
res.responseText );
if( callback )
self.each( callback, [res.responseText, status, res] );
}
});
return this;
}
Come to the Dark Side ...
We have cookies ...
— V
We have cookies ...
— V