試圖解決prototype.js和jQuery.js之間的$衝突,因爲我需要使用需要jQuery庫的jSlider。使用jslider原型和noConflict時jQuery衝突
我在的jquery.js的末尾添加jQuery.noConflict()文件,然後在文件jslider.js我改變$ ._ roundNumber到jQuery._roundNumber。但我仍然得到一個錯誤,說jQuery._roundNumber不是一個函數。請幫忙。
試圖解決prototype.js和jQuery.js之間的$衝突,因爲我需要使用需要jQuery庫的jSlider。使用jslider原型和noConflict時jQuery衝突
我在的jquery.js的末尾添加jQuery.noConflict()文件,然後在文件jslider.js我改變$ ._ roundNumber到jQuery._roundNumber。但我仍然得到一個錯誤,說jQuery._roundNumber不是一個函數。請幫忙。
固定。剛剛意識到的原因jQuery.noConflict()不工作是因爲jQuery已經被在我,包括我的當前頁面的模板頁面中使用這樣的問題是雙重的:
「$() '這是默認jQuery選擇用的prototype.js其中掛毯默認包含衝突
當我添加jQuery.noConflict()在我的jquery.new.js文件的末尾,然後嘗試使用‘jQuery的()’作爲選擇器,它不工作,或者是因爲不同版本的jquery(我們稱之爲jquery.old.js)已經包含在模板頁面中(我包括在當前頁面中)。爲了讓jquery.old.js與prototype.js一起工作,以前的開發人員已經使用jQuery.noConflict(),所以'jQuery()'選擇器也已經被使用。
修復:我加$ J2 = jQuery.noConflict()在jquery.new.js文件的末尾,然後我用 '$ J2()' 在我的新的庫選擇一個使用JSlider的和我還修改了jSlider.js文件中的選擇器。現在一切正常。
我正在項目中留下jquery.new.js和jquery.old.js文件(而不是僅僅使用一個),因爲使用舊jquery版本的模板頁面在整個站點都被使用(我不'在改變這個之後,我想要測試整個網站),而我添加的新組件需要新版本的jquery(jquery.new.js)文件。是的,我知道最好在我的html頁面的頂部添加無衝突命令,而不是在js庫文件的末尾添加 - 會在堆棧溢出的此更新之後更改此更改:)
這裏是整合原型和jQuery的例子...可能檢查你做了正確的事情或不。
<script src="prototype.js"></script>
<script src="effects.js"></script>
<script src="jquery.js"></script>
jQuery.noConflict();
jQuery(document).ready(function($){
jQuery("a").click(function(){
Effect.Shake('shake_demo');
});
});
<div id="shake_demo" style="width:150px; height:40px; background:#ccc; text-align:center;">
<a href="#" style="line-height:40px;">Click me to shake!</a>
</div>
現在四捨五入的數量,您可以使用此代碼:
var txt=jQuery('#txtBox').val());
var amt = parseFloat(txt);
alert(amt.toFixed(2);
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Number/toFixed
我們需要相關副本代碼才能回答你的具體問題。有很多不同的變量會導致這種衝突。 – freshnode 2012-04-27 09:52:28