jQuery noConflict() metoden

Hvordan bruger man jQuery og andre rammer på samme side?

jQuery og andre JavaScript-fremmelsesrammer

Som du allerede har opdaget, bruger jQuery $-symbolet som en forkortelse for jQuery.

Hvad hvis andre JavaScript-rammer også bruger $-forkortelse som forkortelse?

Andre JavaScript-rammer inkluderer: MooTools, Backbone, Sammy, Cappuccino, Knockout, JavaScript MVC, Google Web Toolkit, Google Closure, Ember, Batman og Ext JS.

Nogle rammer bruger også $-forkortelse som forkortelse (som jQuery), hvis du bruger to forskellige rammer, der bruger samme forkortelsessymbol, kan det føre til, at scriptet stopper med at køre.

jQuery's team har overvejet dette problem og implementeret noConflict() metoden.

jQuery noConflict() metoden

noConflict() metoden frigiver kontrol over $-identifikatoren, så andre scripts kan bruge det.

Eksempel

Selvfølgelig kan du stadig bruge fuldt navn for at erstatte forkortelsen og bruge jQuery:

$.noConflict();
jQuery(document).ready(function(){
  jQuery("button").click(function(){
    jQuery("p").text("jQuery kører stadig!");
  });
});

Prøv det selv

Eksempel

Du kan også oprette dine egne forkortelser. noConflict() returnerer en reference til jQuery, som du kan gemme i en variabel til senere brug. Se dette eksempel:

var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery kører stadig!");
  });
});

Prøv det selv

Eksempel

Hvis din jQuery-kodeblok bruger $-forkortelse, og du ikke vil ændre denne hurtigknapp, kan du bruge $-symbolet som en variabel til at give det til ready-metoden. På den måde kan du bruge $-symbolet i funktionen - mens du uden for funktionen stadig måtte bruge "jQuery":

$.noConflict();
jQuery(document).ready(function($){
  $("button").click(function(){
    $("p").text("jQuery kører stadig!");
  });
});

Prøv det selv

jQuery Kern reference manual

For en fuld oversigt over jQuery-kernmetoder, besøg vores jQuery Kern reference manual.