簡體   English   中英

多個jQuery.noConflict()實例

[英]Multiple jQuery.noConflict() instances

我正在使用幾個jQuery腳本,其中包括MenuFader( http://css-tricks.com/examples/MenuFader/ ),Twitter提要和時間戳。 另外,我有幾個Mootools腳本,其中包括Barackslideshow( http://devthought.com/wp-content/moogets/BarackSlideshow/demo.html )。 最后,我有一個滾動條,帶有從Twitter主頁獲取的工具提示。

我最初與Jquery MenuFader和Mootools BarackSlideshow發生沖突,但可以通過jQuery.noconflict()輕松解決此問題; 並將所有對應的$替換為jQuery。

不幸的是,在我添加了Twitter的滾動條之后,Mootools BarackSlideshow和Jquery MenuFader不再起作用。

我試圖實現jQuery.noconflict(); 然后$ .noconflict(); 然后var j = jQuery.noconflict(); 並像以前一樣替換$,但是我無法使腳本正常播放。

非常感謝任何幫助...我整天都在努力。 我對javascript很陌生,但是通過一些持久性就設法解決了大多數問題。 請看下面的腳本:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"     type="text/javascript"></script>
<script src="http://a2.twimg.com/a/1274914417/javascripts/fronts.js" type="text/javascript"></script> 

<script type="text/javascript"> 
//<![CDATA[

      $( function () {

  setTimeout(function() { $(".twtr-widget").append($("<div></div>").attr("class", "twtr-fade")); }, 0);

  (function() {
    var tabIndex = $("[tabindex]:last").attr("tabIndex");
    var setTabIndex = function() {
      $(this).attr("tabindex", ++tabIndex);
    }
    $(".footer-nav a").each(setTabIndex);
    $(".language-select a").each(setTabIndex);
  })();

    $("#signup_submit").scribe({
    event_name: "signup_submit_click",
    experiment: "ab_signup_button",
    bucket: "sign_up"
  }, "www_ab_tests");

  $('#signin_menu').isSigninMenu();

      new FrontPage().init();

      });

//]]>

noConflict很簡單,而且僅用於更改jQuery庫可用的名稱。

這是嘗試與可能也要使用名稱$其他框架更好地協作,但這就是它的全部 它不能解決與其他框架之間的任何其他類型的一般沖突。 例如,當一個框架使用jQuery的內部ID標記克隆,更改或刪除一個元素時,可能會確保產生不可思議的怪異錯誤。 當一個頁面與jQuery一樣廣泛且具有侵入性時,在一個頁面上使用多個框架仍然是一個非常糟糕的主意 (特別是jQuery 1.3,它涉及到的元素超級混雜。)

同樣,在相同元素上運行的兩個高級插件很可能會發生有害的行為交互。 假設一個插件將一個行為綁定到一個元素,但是另一個插件刪除了該元素以將其替換為漸進增強版本。 或者一個插件嘗試讀取不再具有可見寬度的元素的offsetWidth ,因為另一個插件在其父級上調用了hide()

腳本和插件可能偽裝成完全封裝的行為,您可以在不了解它們如何工作的情況下拋出它們,但實際上並非如此。 如果將兩個腳本(尚未設計成可以一起使用)綁定到相同的元素,則它們很可能會干擾或失敗。 嘗試將受不同插件影響的元素彼此分開,以減少這種可能性。

暫無
暫無

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

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