2010-06-28 55 views
3

我有一個我正在更新的網頁,此頁面使用Prototype和Lightbox一起。我不想將當前頁面更改爲jQuery,因爲我不確定還有什麼使用Prototype,如果我不再包含Prototype,它會隨後中斷。同時使用fadeIn()和fadeOut()與jQuery和Prototype

我的問題是這樣的:

我有幾個TD的,我想淡入和一個按鈕,點擊淡出。當我暫時取出Prototype時,這是完美的。只要我把Prototype放回去,那麼​​jQuery函數就會完全中斷。我懷疑這是因爲Prototype也有一個fadeIn() &​​函數。

有沒有一種方法可以強制Prototype不會將這些函數識別爲函數,並且仍然讓jQuery完美地執行它們?

這裏是我的jQuery代碼:

var $j = jQuery.noConflict(); 

$j(document).ready(function() {  
    $j("a.archiveBtn.2009").click(function() { 
     $j("td.archive.2009").fadeIn(); 
     $j("tr td.archiveBtn").css("paddingBottom", 20); 
     $j("tr td.archiveBtn").css("borderBottom", "#999 1px dashed"); 
     $j("a.hideArchive.2009").show(); 

     return false; 
    }); 

    $j("a.hideArchive.2009").click(function() { 
     $j("td.archive.2009").fadeOut(function() { 
      $j("tr td.archiveBtn").css("paddingBottom", 0); 
      $j("tr td.archiveBtn").css("borderBottom", "none"); 
     }); 
     $j(this).hide(); 

     return false; 
    }); 

    $j("tr td.archiveBtn").parent().prev("tr").children("td").css("paddingBottom", 20); 
}); 

任何幫助,將不勝感激和感謝提前。

回答

0

最後,我確定Prototype.js只用於Lightbox工作,所以我禁用了Prototype.js併合並了Lightbox jQuery插件。

我的代碼現在完美工作。

1

您似乎已經尊重jQuery中的衝突建議,也許可以嘗試以下操作,它會在此處取消激活Prototype函數,但我真的不確定它會執行此操作,因爲我沒有在您的代碼,但它是值得嘗試:

jQuery(document).ready(function($) { 
     $("a.archiveBtn.2009").click(function() { 
..... 


} 

有了這個,你可以使用$,而不是直接的$ j和您確信它是唯一的jQuery函數。 順便說一句,完全打破你的意思是什麼?動畫很奇怪?它並沒有完全消失?

希望這有助於

有一個愉快的一天(聽卡洛斯·吉恩^^)

+0

我敢肯定,我也嘗試過,它一直在做同樣的事情,它會淡出,但淡入卻變得非常奇怪,然後淡出沒有做任何事情,但顯示的TD之一。當Prototype.js和jQuery同時處於活動狀態時,動畫是非常奇怪的,但暫時使用相同的代碼禁用Prototype.js,我的jQuery工作得很好。因此,懷疑Prototype試圖在執行'fadeIn()'和'fadeOut()'函數時與jQuery一起做某件事。 – 2010-06-29 11:37:16

1

如果jQuery的.animate爲你正常工作,那麼你可以使用.animate({opacity: 0}).animate({opacity: "hide"})做同樣的事情as .fadeOut()

+0

謝謝,我不知道,下次我會看看。 – 2010-06-29 11:38:15