jQuery Core - noConflict() Yöntemi
Örnek
noConflict() yöntemi ile jQuery değişkeni için yeni bir ad belirleyin:
var jq=$.noConflict();
Tanım ve Kullanım
noConflict() yöntemi, değişken $'nin jQuery kontrolünü devredir.
Bu yöntem, jQuery'nin $ değişkenine olan kontrolünü serbest bırakır.
Bu yöntem, jQuery değişkeni için yeni özelleştirilmiş bir ad belirlemek için de kullanılabilir.
İpucu:Diğer JavaScript kütüphanelerinin fonksiyonlarında $ kullanıldığında bu yöntem çok faydalıdır.
Sözdizimi
jQuery.noConflict(removeAll)
Parametre | Açıklama |
---|---|
removeAll | Booleen değer. jQuery değişkeninin tamamen geri getirilmesine izin verip verilmeyeceğini belirtir. |
Açıklama
Birçok JavaScript kütüphanesi $'yi fonksiyon veya değişken adı olarak kullanır, jQuery de aynı şekilde. jQuery'de $ sadece jQuery'nin bir takma adıdır, bu yüzden $ kullanılmadan bile tüm işlevsellik sağlanabilir. jQuery dışında bir başka JavaScript kütüphanesi kullanmamız gerektiğinde, bu kütüphaneye kontrolü döndürmek için $.noConflict() çağrısını kullanabiliriz:
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // Diğer bir kütüphanenin $ kodları </script>
Bu teknik, .ready() yöntemi ile birleştirilerek jQuery nesnelerine takma ad vermek için çok etkili kullanılabilir:
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(document).ready(function($) { // jQuery $ kodları }); // Diğer kütüphanelerin $ kodları </script>
Ayrıca, bu yönteme true parametresi ile erişildiğinde, $ ve jQuery'nin kontrolünü orijinal kütüphaneye teslim edebiliriz. Kullanmadan önce dikkatli olun!
Bu, basit noConflict yöntemine göre daha radikal bir versiyon, çünkü bu, jQuery'yi tamamen yeniden tanımlayacaktır. Bu, genellikle jQuery'yi yüksek çatışma ortamına gömmek gibi bir durumda kullanılır. Uyarı: Bu yöntemi çağırdıktan sonra, eklentilerin çoğunun çalışmaması muhtemeldir.
Örnek
Örnek 1
$'i referans edilen nesneyi orijinal nesneye dönüştürün:
jQuery.noConflict(); jQuery("div p").hide(); // jQuery $("content").style.display = "none"; // Diğer bir kütüphanenin $()
Örnek 2
Takma ad $'i geri yükleyin, ardından bir fonksiyon oluşturun ve çalıştırın. Bu fonksiyonun etkisi altında $'i hala jQuery'nin takma adı olarak kullanabilirsiniz. Bu fonksiyon, diğer kütüplere bağımlı olmayan çoğu eklenti için oldukça etkili olacaktır:
jQuery.noConflict(); (function($) { $(function() { // $'i jQuery takma adı olarak kullanma kodu }); })(jQuery); ... // $'i takma adı olarak kullandığı diğer kütüphanelerin kodları
Örnek 3
jQuery.noConflict() ile kısaltılmış ready'i birleştirerek kodu daha sıkı hale getirebilirsiniz:
jQuery.noConflict()(function(){ // jQuery'yi kullanma kodu }); ... // Başka kütüphanelerin $'i takma adı olarak kullandığı kodlar
Örnek 4
Sonraki kütüphanede jQuery nesnesini kullanmak için yeni bir takma ad oluşturun:
var j = jQuery.noConflict(); j("div p").hide(); // jQuery tabanlı kod $("content").style.display = "none"; // Başka bir kütüphanenin $() kodu
Örnek 5
jQuery'yi tamamen yeni bir ad alanına taşıyın:
var dom = {}; dom.query = jQuery.noConflict(true);
Sonuç:
dom.query("div p").hide(); // Yeni jQuery kodu $("content").style.display = "none"; // $() fonksiyonunun başka bir kütüphanenin kodu jQuery("div > p").hide(); // jQuery'nin başka bir versiyonundaki kod