2011-06-30 48 views
0

我使用了兩個不同的jQuery插件;一個用於新聞徽標自動收報器,另一個用於水平文本滑塊。我該如何解決這個jQuery插件衝突?

,但其中只有一個是在的時候,在單頁使用的可能是因爲jQuery衝突的時候工作。如果我評論的第一個插件插件第二工作正常,反之亦然。

下面是代碼:

<script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" src="js/jquery.newsticker.js"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(
      function() 
      { 
       jQuery("#news").newsTicker(); 
       jQuery("#development").newsTicker();     
      } 
     ); 
    </script> 
    <link href="css/style.css" rel="stylesheet" type="text/css">    
    <link rel="stylesheet" type="text/css" href="plugins/image_slider/css/sliderman.css" /> 


    <link type="text/css" href="css/humanity/jquery-ui-1.8.13.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script> 
    <script type="text/javascript"> 
     jQuery(function(){ 
      jQuery("#accordion").accordion({ header: "h3" }); 
     }); 
    </script> 
    <link rel="stylesheet" href="css/news.css" type="text/css" media="screen"> 
    <script src="js/jcarousellite_1.0.1c4.js" type="text/javascript"> 
</script> 

謝謝!

+2

什麼是衝突? – Ibu

+1

不依賴於主jQuery庫的'jquery.newsticker.js'?首先加載基礎庫 – Ibu

+0

thanx ibu ... !!!!!加載基礎庫。首先和輕微的變化出來的結果.. –

回答

1

您可能需要聲明變量。因爲$正在使用其他js框架,如原型。 所以只需將它放在腳本頂部的下面的腳本中即可。

var jQuery = jQuery.noConflict(); 
+0

thanx .. !!!!但jquery.noconflict不似乎是一個問題。問題是,第二個jquery插件覆蓋第一個.. –

+0

是移動''到頂部你的腳本 –

2

儘量安排您的腳本引用:

1)jQuery的

2)jQuery的UI

3)字幕跑馬燈

,並把它添加到頁面的前頂部調用任何jQuery相關的方法。

不是100%肯定這是否會工作,但不妨一試。

不知道你正在使用的字幕跑馬燈的版本,但看看這個link

+0

嘿thanx! :)我試過它BT相同....它沒有工作.. –

+0

快樂。您也可以嘗試將代碼轉換爲僅使用$而不是JQuery。例如$(function(){/ * Code * /});而不是jQuery(function(){/ * Code * /}); –

+0

更新了我的答案,其中包含一個指向newsticker源的鏈接。確保你使用最新的。 –

0

我在爲我的網頁使用大量插件時遇到了同樣的問題。最簡單的解決方案是有一個包含所有.js文件的連接文件,頭部只有一個包含文件。你也可以縮小(縮小工具在線)鏈接文件,只包括最小版本。這應該可以解決問題。

另一種方式是,以確保您調用插件的功能之前,插件是可用的。嘗試使用getScript加入jQuery的,以確保這兩個插件的加載和使getScript加入

1
  1. 的成功處理程序並不總是不夠的,只是添加jQuery.noConflict();內插件的功能調用。您可能還需要用jQuery替換所有出現的$。難點在於,變量通常定義爲$a_variable_name,取代變量中的$將導致錯誤。

    看看你是否能找到一個版本的醉意與已經取得的noConflict編輯。還要注意,通常需要添加noConflict,並用其他jQuery腳本替換$ jQuery,特別是如果該腳本依賴於其他腳本。

    這確實解決了衝突,因爲我一直這樣做了一段時間。另請注意,如果您始終使用jQuery,則通常不需要這些編輯。

  2. 加載腳本文件的順序也很重要,請嘗試重新排列它們。

  3. 僅在需要時執行腳本。換句話說,如果一段特定的代碼引起衝突,請使用腳本標記從需要的頁面加載它,而不是加載到頁眉中。