我實際上沒有在原型和jQuery的同時工作,但根據我的理解,您應該在原型腳本之前調用jQuery.noConflict()
。
試着改變你的文件頭是這樣的:
<head>
<script src="http://cdn.jquerytools.org/1.2.4/full/jquery.tools.min.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<script type="text/javascript" src="http://prototypejs.org/assets/2009/8/31/prototype.js"></script>
<script type="text/javascript" src="http://www.warriorlabs.net/jScript/facebox/facebox.js"></script>
</head>
編輯:
也從第一行中刪除jQuery.noConflict()
在facebox.js
因爲它消除了由原型定義的$
功能。
邊注:
寫jQuery插件通常使用的方法是這樣的:
(function($){
//Inside this block we know that $ == jQuery
//The global $ (i.e. window.$) might be something else
//By using this anonymous function we make sure we don't polute the global namespace
var v = "function scope";//this is a variable in the scope of the function
window.globalV = "global scope";//this is a global variable
$.fn.myPlugin = function(){
//my plugin code, usually something like:
return this.each(function(){
//do something with each element
$(this).show();
});
//returning this.each allows for chaining
}
})(jQuery);
在Chrome中我得到你的演示頁面上此錯誤:
Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function [prototype.js:4598]
嘿,丹,我已將修復應用於頁面。到目前爲止,我仍然有同樣的問題。你還有錯誤嗎? – 2010-10-23 18:08:49
嘗試從'facebox.js'中的第一行刪除'jQuery.noConflict()'。 – 2010-10-23 18:25:36
試過這個。它不會改變任何東西,可能是因爲facebox是用jQuery寫的,而不是原型。事實上,在我的例子中,原型永遠不會被「使用」,它只是在那裏:)。所以我認爲原型正在破壞jQuery或其他東西,可能並非如此。 – 2010-10-23 19:05:47