2010-08-31 146 views
2
<blink> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/prototype/1.6.1/prototype.js'></script> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/scriptaculous.js'></script> 
<script type='text/javascript' src='/lightview.js'></script> 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script> 
<script type="text/javascript" src="/photography/js/scrollable.js"></script> 
<script> 
// Use jQuery via jQuery(...) 
jQuery(document).ready(function(){ 
jQuery("div.scrollable").hide(); 
}); 

// Use Prototype with $(...), etc. 
$('div.box').hide(); 
</script> 
</blink> 

我的代碼不工作我不知道爲什麼? 有什麼建議嗎?Jquery和Protoype衝突

回答

4

您需要使用jQuery.noConflict()釋放$回原型,像這樣:

jQuery.noConflict(); //restore $ to prototype 
jQuery(document).ready(function(){ 
    jQuery("div.scrollable").hide(); 
}); 

$('div.box').hide(); 

雖然jQuery的可以做的顯示/隱藏,所以你可能不需要這兩個庫,這取決於你在做什麼(例如,有用於jQuery的燈箱插件和用於原型的可滾動插件,所以你可以用任何方式使用單個庫來實現所有功能)。

你也可以把它從$恢復通話的別名,它返回到jQuery的一個參考,所以你可以這樣做:

var $j = jQuery.noConflict(); //restore $ to prototype 
$j(function(){ 
    $j("div.scrollable").hide(); 
}); 

$('div.box').hide(); 
0

一旦我有同樣的問題,使用原型和jQuery的相同的頁面,並指定jQuery.noConflict()函數,但我的東西沒有淡入/淡出(東西是跳奇怪,有時只在第一個動畫工作)。當我禁用Prototype時,我的jQuery代碼完成了它應該做的事情。我得出的結論是,jQuery和Prototype具有相同的函數名稱,並以某種方式導致衝突。

暫時禁用Prototype,看看您的jQuery代碼是否按預期執行。