簡體   English   中英

在哪里使用jQuery.noConflict

[英]Where to use jQuery.noConflict

我有一些在jQuery中給出的代碼,而我確實是新手。 我需要使用jQuery.noConflict()方法,因為我也在使用Mootools框架。 我只是不知道應該在“ jQuery”的代碼中替換$符號。 任何幫助將不勝感激!

其代碼在www.cshellarchitecture.com/test/js/flexibg.js

這非常簡單-在您鍵入jQuery.noConflict(); 您應該只用jQuery替換所有$實例。

另外,如果您習慣依賴$作為可視化的簡寫來識別調用框架時的情況,則可以執行$jq = jQuery.noConflict(); 然后在整個代碼中使用$jq而不是jQuery 在您的情況下,可以在提供給您的代碼中用$jq替換$

由於您以模塊模式之類的方式來構造代碼 ,因此您可以執行以下操作:

var flexiBackground = (function($){ // notice the $ argument
  //$ === jQuery only within this scope...

})(jQuery.noConflict()); // call noConflict and pass the jQuery reference to $

這樣,您就可以通過$標識符正常引用jQuery, 僅在分配給flexiBackground的自執行匿名函數的范圍內。

摘自鏈接代碼文件的一些示例:

    var $window = $(window),
    $body = $('body'),
    imageID = "expando",
    tallClass = 'tall',
    wideClass = 'wide',
    $bgImage, $wrapper, img, url, imgAR;

    /**
            Are we dealing with ie6?
    */
    var ie6 = ($.browser.msie && parseInt($.browser.version, 10) <= 6);

應該:

    var $window = jQuery(window),
    $body = jQuery('body'),
    imageID = "expando",
    tallClass = 'tall',
    wideClass = 'wide',
    $bgImage, $wrapper, img, url, imgAR;

    /**
            Are we dealing with ie6?
    */
    var ie6 = (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) <= 6);

用於noConflict()方法的jQuery文檔說:

運行此函數可將$變量的控制權交還給第一個實現它的庫。...使用此函數,您將只能使用'jQuery'變量訪問jQuery。

在這種情況下,如果您在無沖突模式下運行,則通過“ $”變量對jQuery的每次調用都應替換為“ jQuery”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM